<template>
	<view class="content">

		<text class="text-style" id="statusTips">
			{{connectedDevice ? (connectedDevice.name + " " + connectedDevice.address) : "未连接"}}</text>
		<!-- <button type="primary" @click="searchDeviceWithName()" class="margin-top">搜索指定设备</button> -->
		<button type="primary" @click="searchDevice()" class="margin-top">搜索蓝牙设备</button>
		<button type="primary" @click="searchWifiDevice()" class="margin-top">搜索Wi-Fi设备</button>
		<button type="primary" @click="makewifi()" class="margin-top">蓝牙配网</button>
		<button type="primary" @click="disconnectPrinter()" class="margin-top">断开连接</button>
		<button type="primary" @click="printTextLabel()" class="margin-top">打印文本</button>
		<button type="primary" @click="printBarCode()" class="margin-top">打印条码</button>
		<button type="primary" @click="printQrCode()" class="margin-top">打印二维码</button>
		<button type="primary" @click="printLine()" class="margin-top">打印线条</button>
		<button type="primary" @click="printGraph()" class="margin-top">打印图形</button>
		<button type="primary" @click="printImage()" class="margin-top">打印图片</button>
		<button type="primary" @click="printMultipleTest()" class="margin-top">批量打印</button>
		<button type="primary" @click="cancelJob()" class="margin-top">取消打印</button>
		<button type="primary" @click="checkConnection()" class="margin-top">连接状态</button>
		<button type="primary" @click="previewPrintData()" class="margin-top">预览数据示例</button>
		<button type="primary" @click="customPrint()" class="margin-top">自定义打印</button>
		<view class="margin-top">
			<view class="title">打印浓度1~15(不同机型支持的最高浓度不一样):</view>
			<input class="click-avalible" type="number" placeholder="打印浓度1~10" :value=printDensity
				@input="handleDensity" />
		</view>
		<view class="margin-top">
			<view class="uni-title">打印模式:</view>
			<picker @change="printModePickerChange" :value="printModePickerSelectedIndex" :range="printModeData"
				range-key="name">
				<view class="click-avalible">{{printModeData[printModePickerSelectedIndex].name}}</view>
			</picker>
		</view>
		<view class="margin-top">
			<view class="uni-title">标签类型:</view>
			<picker @change="labelTypePickerChange" :value="labelTypePickerSelectedIndex" :range="labelTypeData"
				range-key="name">
				<view class="click-avalible">{{labelTypeData[labelTypePickerSelectedIndex].name}}</view>
			</picker>
		</view>
		<view v-if="maskShow" class="uni-mask" @touchmove.stop.prevent="moveHandle" @click="maskclose">
			<scroll-view class="uni-scroll_box" scroll-y @touchmove.stop.prevent="moveHandle" @click.stop="moveHandle">
				<view class="uni-list-box" v-for="(item, index) in list" :key="index" @click="tapQuery(item)">
					<view>
						<view class="uni-list_name">名称：{{ item.name }}</view>
						<view class="uni-list_item">UUID:{{ item.address }}</view>
					</view>
				</view>
			</scroll-view>
		</view>
		<view v-if="showMakeWifi" class="uni-mask" @click="maskclose">
			<view class="makewifiBg" @touchmove.stop.prevent="moveHandle" @click.stop="moveHandle">
				<view class="uni-form-item uni-column">
					<view class="title">输入配网的网络名称:</view>
					<input class="uni-input input-border" focus placeholder="输入Wi-Fi名称" @input="onWifiNameInput"
						:value="wifiname" />
					<view class="kongbai"></view>
					<view class="title">输入配网的网络密码:</view>
					<input class="uni-input input-border" placeholder="输入Wi-Fi密码" @input="onWifiPwdInput"
						:value="wifipwd" />
				</view>
				<view class="kongbai"></view>
				<button type="primary" @tap="startMakeWifi">开始配网</button>
			</view>
		</view>
	</view>
</template>

<script>
	// 标签类型
	export const LabelType = {
		Gap: 1, // 间隙纸
		BlackMark: 2, // 黑标纸
		Continuous: 3, // 连续纸
		FixedHole: 4, // 定孔纸
		Transparent: 5 // 透明纸
	}

	// 绘制支持的旋转角度
	export const LabelRotateType = {
		None: 0,
		Rotate90: 90,
		Rotate180: 180,
		Rotate270: 270
	}

	// 换行方式
	export const LineModeType = {
		Justified: 1, // 宽高固定，内容自适应（字号/字间距/行间距按比例缩放）
		AutoHeight: 2, // 宽度固定，高度自适应
		Fixed: 4, // 宽高固定，超出部分裁剪
		Adapt: 6, // 宽高固定，内容超过时预设宽高自动缩小
	}

	// 条码类型
	export const BarCodeType = {
		Code128: 20,
		CodeUPC_A: 21,
		CodeUPC_E: 22,
		Ean8: 23,
		Ean13: 24,
		Code93: 25,
		Code39: 26,
		CodeBar: 27,
		ITF25: 28
	}

	// 二维码文字显示位置
	export const BarCodeTextPosition = {
		Below: 0, // 下方显示
		Above: 1, // 上方显示
		Hidden: 2, // 不显示
	}

	// 二维码类型
	export const QrCodeType = {
		QrCode: 31,
		PDF417: 32,
		DataMatrix: 33,
		AZTEC: 34
	}

	// 线条类型
	export const LineType = {
		Solid: 1, // 实线
		Dotted: 2, // 虚线（默认虚实1:1相间）
	}

	// 图形类型
	export const GraphType = {
		Round: 1, // 圆形
		Oval: 2, // 椭圆形
		Rectangle: 3, // 矩形
		RoundedRectangle: 4 // 圆角矩形
	}

	// export const jcapi = uni.requireNativePlugin("JCSDK-JCApiModule");

	export default {
		data() {
			return {
				model:{
					name:'阿克苏冰糖心苹果',
					code:'SC0020250318000002',
				},
				maskShow: false,
				showMakeWifi: false,
				wifiname: '',
				wifipwd: '',
				list: [],
				connectedDevice: null,
				printModeData: [{
					name: '热敏',
					value: 1
				}, {
					name: '热转印',
					value: 2
				}],
				printModePickerSelectedIndex: 0,
				printMode: 1,
				printDensity: 5,
				labelTypeData: [{
						name: '间隙纸',
						value: LabelType.Gap
					},
					{
						name: '黑标纸',
						value: LabelType.BlackMark
					},
					{
						name: '连续纸',
						value: LabelType.Continuous
					},
					{
						name: '定孔纸',
						value: LabelType.FixedHole
					},
					{
						name: '透明纸',
						value: LabelType.Transparent
					},
				],
				labelTypePickerSelectedIndex: 0,
				labelType: 1
			}
		},
		onLoad() {
			let _this = this;
			// 初始化SDK
			jcapi.initSDK()
			// 监听页码回调
			jcapi.didReadPrintCountInfo(function(r) {
				console.log(r)
			})

			// 监听错误回调
			jcapi.didReadPrintErrorInfo(function(r) {
				console.log(r)
				if (r.code == 23) {
					// 打印机断开连接
					_this.connectedDevice = null
				}
				uni.showToast({
					icon: 'none',
					title: JSON.stringify(r),
					duration: 2 * 1000
				})
			})
		},
		methods: {
			printModePickerChange(e) {
				this.printModePickerSelectedIndex = e.detail.value
				this.printMode = this.printModeData[this.printModePickerSelectedIndex].value
			},
			labelTypePickerChange(e) {
				this.labelTypePickerSelectedIndex = e.detail.value
				this.labelType = this.labelTypeData[this.labelTypePickerSelectedIndex].value
			},
			handleDensity(e) {
				this.printDensity = e.detail.value
			},
			moveHandle() {},
			maskclose() {
				this.maskShow = false;
				this.showMakeWifi = false;
			},
			tapQuery(item) {
				this.maskShow = false
				// 连接打印机
				let _this = this;
				jcapi.openPrinterByDevice({
					address: item.address,
					name: item.name,
					deviceType: item.deviceType // 设备类型：0-蓝牙，1-网络
				}, function(r) {
					uni.showToast({
						title: (r.code == 0) ? "连接成功" : "连接失败",
						duration: 2 * 1000
					})
					if (r.code == 0) {
						_this.connectedDevice = item
					}
				})
			},
			makewifi() {
				this.showMakeWifi = true;
			},
			onWifiNameInput: function(event) {
				this.wifiname = event.target.value;
			},
			onWifiPwdInput: function(event) {
				this.wifipwd = event.target.value;
			},
			startMakeWifi: function() {
				let _this = this
				uni.showLoading({
					title: "配网中..."
				})
				jcapi.configWifi({
						wifiName: this.wifiname,
						wifiPwd: this.wifipwd,
					},
					function(r) {
						uni.hideLoading()
						uni.showModal({
							title: (r.code == 0) ? "配网成功" : "配网失败" + ",ErrorCode:" + r.code,
							duration: 2 * 1000
						})
						_this.showMakeWifi = false;
					});
			},
			searchDevice() {
				let _this = this
				uni.openBluetoothAdapter({ // 确认蓝牙是否打开
					success(r) {
						uni.showLoading({
							title: "搜索中..."
						})
						// 未授予蓝牙相关权限和未打开手机定位会搜索不到设备
						jcapi.getBluetoothDevices(function(r) {
							console.log("device:" + JSON.stringify(r))
							// 搜索到设备回调
							uni.hideLoading()
							_this.list = r;
							_this.maskShow = true
						})
					},
					fail(e) {
						uni.showModal({
							confirmText: "打开蓝牙失败"
						})
						console.log("开启蓝牙设备失败" + e)
					}
				})
			},
			searchWifiDevice() {
				let _this = this
				uni.getNetworkType({
					success: function(res) {
						console.log(res.networkType); //网络类型 wifi、2g、3g、4g、ethernet、unknown、none
						if (res.networkType === 'wifi') {
							jcapi.getWifiDevices(function(r) {
								console.log("device:" + JSON.stringify(r))
								// 搜索到设备回调
								uni.hideLoading()
								_this.list = r;
								_this.maskShow = true
							})
						} else {
							uni.showModal({
								confirmText: "当前网络环境不正常"
							})
						}
					},
					fail: function(e) {
						uni.showModal({
							confirmText: "打开wifi失败"
						})
						console.log("开启蓝牙设备失败" + e)
					}
				})
			},
			searchDeviceWithName() {
				let _this = this
				uni.openBluetoothAdapter({ // 确认蓝牙是否打开
					success(r) {
						uni.showLoading({
							title: "搜索中..."
						})
						// 未授予蓝牙相关权限和未打开手机定位会搜索不到设备
						jcapi.getBluetoothDevicesWithName({
							"name": ["b32", "B21"] // 添加需要过滤的机型
						}, function(r) {
							console.log("device:" + JSON.stringify(r))
							// 搜索到设备回调
							uni.hideLoading()
							_this.list = r;
							_this.maskShow = true
						})
					},
					fail(e) {
						uni.showModal({
							confirmText: "打开蓝牙失败"
						})
						console.log("开启蓝牙设备失败" + e)
					}
				})
			},
			disconnectPrinter() {
				jcapi.close()
				this.connectedDevice = null
			},
			cancelJob() {
				jcapi.cancelJob(function(r) {
					// callback
				})
			},
			checkConnection() {
				var r = jcapi.isConnected()
				console.log(JSON.stringify(r))
				uni.showToast({
					title: (r.value == 0) ? "断开连接" : "已连接"
				})
			},
			previewPrintData() {
				// 初始化画板
				jcapi.initDrawingBoard({
					width: 40,
					height: 20,
					rotate: 0,
				});
				// 绘制文字
				jcapi.drawLabelText({
					x: 4.375,
					y: 0.375,
					width: 30,
					height: 20,
					value: "蛋糕房",
					fontSize: 4,
					rotate: 0,
					lineMode: LineModeType.AutoHeight,
					lineSpace: 0,
					letterSpace: 0,
					textAlignHorizontal: 1,
					textAlignVertical: 1,
					bold: 1,
					italics: 1,
					underline: 1,
				})
				// 生成打印数据
				let imageJsonObj = jcapi.generateLabelJson()
				let previewResponse = jcapi.generatePrintPreviewImage(imageJsonObj)
				uni.navigateTo({
					// 使用 encodeURIComponent 避免base64字符数据中的符号传递的时候丢失
					// 使用正则移除回车换行
					url: "/pages/image_preview/image_preview?base64=" + encodeURIComponent(previewResponse.base64
						.replace(/[\r\n]/g, ""))
				})
			},
			// 打印文本
			printTextLabel() {
				let draw={
					width: 40,
					height: 30,
					fontSize: 2,
					rotate: 0,
					lineMode: LineModeType.AutoHeight,
					lineSpace: 0,
					letterSpace: 0,
					textAlignHorizontal: 0,
					textAlignVertical: 1,
					bold: 0,
					italics: 0,
					underline: 0,
				}
				// 初始化画板
				jcapi.initDrawingBoard({
					width: 40,
					height: 30,
					rotate: 0,
				});
				// 绘制文字:产品名称
				jcapi.drawLabelText({
					x: 1.0,
					y: 0.375,
					value: "产品名称:"+this.model.name,
					...draw,
				})
				// 绘制文字：生产单编号
				jcapi.drawLabelText({
					x: 1.0,
					y: 3.375,
					value: "生成单编号:"+this.model.code,
					...draw,
				})
				// 绘制文字：生产人
				jcapi.drawLabelText({
					x: 1.0,
					y: 6.375,
					value: "生产人:"+this.model.code,
					...draw,
				})
				// 绘制文字：生产时间
				jcapi.drawLabelText({
					x: 1.0,
					y: 9.375,
					value: "生产时间:"+this.model.code,
					fontSize: 2,
					...draw,
				})
				// 绘制文字：实际重量
				jcapi.drawLabelText({
					x: 1.0,
					y: 12.375,
					value: "实际重量:"+this.model.code,
					...draw,
				})
			
				// 绘制二维码
				jcapi.drawLabelQrCode({
					x: 1,
					y: 18,
					width: 12,
					height: 12,
					value: "精臣云打印SDK",
					rotate: 0,
					codeType: QrCodeType.QrCode,
				});
				
				// 生成打印数据
				let imageJsonObj = jcapi.generateLabelJson()
				console.log(JSON.stringify(imageJsonObj))
				// 设置打印任务
				jcapi.startJob({
					totalCount: 1,
					density: this.printDensity,
					labelType: this.labelType,
					printMode: this.printMode,
				}, function(r) {
					if (r.code == 0) {
						// 打印数据
						jcapi.printData(imageJsonObj, {
							"printQuantity": 1,
						}, function(r) {
							if (r.code == 0) {
								console.log("打印成功")
							} else {
								console.log("打印失败")
							}
						})
					} else {
						console.log("设置打印任务失败")
					}
				})
			},
			printBarCode() {
				// 初始化画板
				jcapi.initDrawingBoard({
					width: 40,
					height: 20,
					rotate: 0
				});
				// 绘制条形码
				jcapi.drawLabelBarCode({
					x: 5,
					y: 1,
					width: 30.0,
					height: 10.0,
					value: "1234567890",
					codeType: BarCodeType.Code128,
					fontSize: 3,
					rotate: 0,
					textHeight: 3,
					textPosition: 0,
				});
				// 生成打印数据
				let imageJsonObj = jcapi.generateLabelJson()
				// 设置打印任务
				jcapi.startJob({
					totalCount: 1,
					density: this.printDensity,
					labelType: this.labelType,
					printMode: this.printMode,
				}, function(r) {
					if (r.code == 0) {
						// 打印数据
						jcapi.printData(imageJsonObj, {
							"printQuantity": 1,
						}, function(r) {
							if (r.code == 0) {
								console.log("打印成功")
							} else {
								console.log("打印失败")
							}
						})
					} else {
						console.log("设置打印任务失败")
					}
				})
			},
			// 打印二维码
			printQrCode() {
				// 初始化画板
				jcapi.initDrawingBoard({
					width: 40,
					height: 20,
					rotate: 0
				});
				// 绘制二维码
				jcapi.drawLabelQrCode({
					x: 5,
					y: 5,
					width: 10,
					height: 10,
					value: "精臣云打印SDK",
					rotate: 0,
					codeType: QrCodeType.QrCode,
				});
				// 生成打印数据
				let imageJsonObj = jcapi.generateLabelJson()
				// 设置打印任务
				jcapi.startJob({
					totalCount: 1,
					density: this.printDensity,
					labelType: this.labelType,
					printMode: this.printMode,
				}, function(r) {
					if (r.code == 0) {
						// 打印数据
						jcapi.printData(imageJsonObj, {
							"printQuantity": 1,
						}, function(r) {
							if (r.code == 0) {
								console.log("打印成功")
							} else {
								console.log("打印失败")
							}
						})
					} else {
						console.log("设置打印任务失败")
					}
				})
			},
			printLine() {
				// 初始化画板
				jcapi.initDrawingBoard({
					width: 40,
					height: 20,
					rotate: 0
				});
				console.log("333")
				//绘制线条
				jcapi.drawLabelLine({
					x: 5,
					y: 1,
					width: 20,
					height: 1,
					rotate: 0,
					lineType: LineType.Solid // 实线
				});

				jcapi.drawLabelLine({
					x: 5,
					y: 5,
					width: 20,
					height: 0.5,
					rotate: 0,
					lineType: LineType.Solid // 实线
				});

				jcapi.drawLabelLine({
					x: 5,
					y: 9,
					width: 20,
					height: 1,
					rotate: 0,
					lineType: LineType.Dotted // 虚线
				});
				// 生成打印数据
				let imageJsonObj = jcapi.generateLabelJson()
				// 设置打印任务
				jcapi.startJob({
					totalCount: 1,
					density: this.printDensity,
					labelType: this.labelType,
					printMode: this.printMode,
				}, function(r) {
					if (r.code == 0) {
						// 打印数据
						jcapi.printData(imageJsonObj, {
							"printQuantity": 1,
						}, function(r) {
							if (r.code == 0) {
								console.log("打印成功")
							} else {
								console.log("打印失败")
							}
						})
					} else {
						console.log("设置打印任务失败")
					}
				})
			},
			printGraph() {
				// 初始化画板
				jcapi.initDrawingBoard({
					width: 40,
					height: 20,
					rotate: 0
				});
				// 绘制图形
				jcapi.drawLabelGraph({
					x: 5,
					y: 1,
					width: 10,
					height: 10,
					graphType: GraphType.Round,
					rotate: 0,
					cornerRadius: 0,
					lineWidth: 1,
					lineType: 1,
				});
				// 生成打印数据
				let imageJsonObj = jcapi.generateLabelJson()
				// 设置打印任务
				jcapi.startJob({
					totalCount: 1,
					density: this.printDensity,
					labelType: this.labelType,
					printMode: this.printMode,
				}, function(r) {
					if (r.code == 0) {
						// 打印数据
						jcapi.printData(imageJsonObj, {
							"printQuantity": 1,
						}, function(r) {
							if (r.code == 0) {
								console.log("打印成功")
							} else {
								console.log("打印失败")
							}
						})
					} else {
						console.log("设置打印任务失败")
					}
				})
			},
			printImage() {
				// 初始化画板
				jcapi.initDrawingBoard({
					width: 40,
					height: 20,
					rotate: 0
				});
				// 绘制图片
				jcapi.drawLabelImage({
					imageData: 'iVBORw0KGgoAAAANSUhEUgAAAoAAAAFACAYAAAAszc0KAAAABHNCSVQICAgIfAhkiAAAIABJREFUeJzsnX9wE+ed/9+0vbSNDDi9UW3flasMTJi6NrYRtRPcDORrD9AoMU7qyZHYI2huXANJ5GjGGpIMJgFnuDDynMFpiAkzje2RA2Wc1jZ1Cow1hcuZ2BwKPySYoYORMmlqG6WNCdo07eSq7x/ubndXu6vd1W/r85rRzEq7z7PP/pD2rc/z+bEgHA6HQRAEQRAEQWQNX0n1AAiCIAiCIIjkQgKQIAiCIAgiyyABSBAEQRAEkWWQACQIgiAIgsgySAASBEEQBEFkGSQACYIgCIIgsgwSgARBEARBEFkGCUCCIAiCIIgsgwQgQRAEQRBElkECkCAIgiAIIssgAUgQBEEQBJFlkAAkCIIgCILIMkgAEgRBEARBZBkkAAmCIAiCILIMEoAEQRAEQRBZBglAgiAIgiCILIMEIEEQBEEQRJZBApAgdDA8PAy32x23/gKBAHbv3g2GYeLWJ0GogWGYjLrvGIaBz+dL9TAIIuMhAUgQGuno6MCmTZtQU1MTFxHIMAyeeeYZtLe3Y+3atRgeHo7DKJNLS0sLFixYwL3oAa0d/vlraWnR3D4QCKCjowMPP/ywpnbj4+NYu3YtOjo6EAwGNe9XipaWFsErEAjE1F8gEEBLSwtWr16NnJwclJSUxG2sBJG1hAmCUE13d3cYAPcym81hv98fU59tbW2CPgGEvV5vfAacJGw2W0aPPx3gnz+bzaaprfi+HB0dVd3WYrEI2sZ6P4fD4YTcz2azWdDn0NBQzH0SRDbztWQJTYKYDzQ2NuLcuXPo6+sDAHg8HtTX12NgYAAmk0lzf/39/Whvbxd81t3djeLi4ngMd14QDAZx+vTpVA9DNQ0NDUnfZ1VVleB9Z2cnqquro7Zzu90YGRnh3ttsNl33cTLYvHkzPB4P9/6dd95BbW1tCkdEEBlOqhUoQWQat27dirBG6LEEjo6ORlhKtFp+0oVEWgC9Xm/EeUrnl15ivQ/0XAOx9S9e1018TuLR7/j4eES/8bBWEkS2Qj6ABKERo9GIgYEBmM1m7jPWEqjW1ykQCGDnzp2Cz6xWK/bt2xfPoRJpBsMwmJiYQH9/vyb/UZ/Ph46ODvT398v6VzY1NQneHzlyRLHP4eHhCOtfOlueKysrYbFYBJ+dOnUqRaMhiMyHpoAJQgcmkwkDAwOor6/npqUeeughGI3GqG0ZhhG0AwCz2YyOjg4YDIa4jdHn8+Hy5cua2uTn56uaOiT08e///u+c6HI6narP9eXLl+FwOAAAFosFv/71ryO2KS4uhs1mQ1dXFwCgq6sLu3btkrwnGYbB3r17BZ/t2rVL07GkgkceeUQgWk+cOIHm5uYUjoggMhcSgATBw+12a4rCzc/P55Zv376NF198MWqbyclJgfhj+3nllVdU7/fgwYNRt7l8+TIaGxtV9wnMWYHSTQAWFxcjHA7HrT+fz4eSkhLuvc1mU3U+pejv7xec47a2NsXt161bxwkYr9erej9TU1Pc8qpVq2S3q62t5QQgAPT29qK1tTViO5fLJbgHu7u7Vf15STUbNmwQvB8ZGUEgEEhbv0WCSGdIABIEj+npacEDVAt62wEQWDXUoFewaEUsltSipU08xV0yCQQCEQL72WefVWxz7733cst9fX3o7e1VtS++WFyxYgUAdRZeh8OBgoKCiM+3bdsW8Vl/f3/EZ4m2CIsFtB4KCws1be9yuVISqEMQ6QYJQIIgMprVq1ejqqoKS5YsQXl5edIsmC+99JLgvcvlimpFW7p0qeC9z+dT5XfHRp0DwPLlywGot/Cq2UZKEALpaREmCCI+kAAkCB75+fmw2Wxx6WtsbEwwzWaxWLBs2bK49K0Hm82GioqKiM9jtcCkkmAwCI/Hw53ntra2pAgWn8+HP/7xj9x7i8WCurq6qO3EYu/mzZtRBaA46EMsIgmCIPRAApAgeFRXV8dNQLS0tAgE4BNPPJHSqaeKigrJ/WeyALxy5YrgPTs9mmiKi4vx61//GoFAAKdOnUJZWZnqAB6r1cpZ9H73u99F3f7mzZvcstlszghfPYIg0h8SgARByKI2AKOlpUXgA+n1epOSUuTixYuC96WlpZr76Orq0u2/6fV6NUeh8v0j1QSC8EXiQw89xC2vX79eVfuTJ09yEcTAXPTxxo0bVY01JydH1XZ6UToGsR+plqAZJfLy8uLSD0FkOiQACYLIWM6cOSN4rzUgIBWIA0EOHTqkaD3kHyPfwmk0GlVZA8WBIgUFBWmT70/uGKTq/KbLmAlivkACkCCIjMTn80VET+/fvz8iv126Ifbh8/v9suImGAwKjlGPhTNRaEmZ5HQ6kZubG/G5XDT7zMxMTGMjCCI6JAAJQgLxlGY8aGxsjNnfjlJY/IOTJ09GfNbe3o5FixZJ5r6Tw2q1CqZItaDH4ihuoxQIIvZxTCcrmJaUSfwoZj7JSmdEEEQkJAAJgsg4gsGgrGhzOBzwer3o6OhQNUWam5ubVGFlMBhgtVqRm5uLiooKxajenJwctLW14cMPP5S0oBEEQeiFBCBBEBnHa6+9JnjvdDpx7NgxLuq6r68PfX19cDqdqK+vT7tKEWoTQFdWVqKysjLBo0l/rFZrqodAEPMOEoAEIUFtba1kzjwtHD16VOC/JZeHTwvp5AOWKtxuN9rb27n3ZrMZ27dvx5YtW9Da2iqYbnQ4HHA4HLBYLFi3bp0gAIOIjdLSUrhcLsl1YlcHp9MpWZFELWT9JIj4QwKQICSIRy7A8+fPC97L5eEj1BMIBLBz507BZ/v374fBYIDBYMChQ4ewZs2aiMoWIyMjsuX2urq6MDk5Gbck3V1dXTCbzbhw4ULEOrW+pUqpafgpdvT4qqr1RY1WI7m4uFh26lzc/8aNGzVNs1MQCEEkHhKABEFIIlUbVo7JyUnB+5MnT0atUysmmjhmGAb19fWC5NriUmUGgwHNzc3YsGEDBgYGVAd3aK3FHI2qqqq49pdtTE9PC97HkqsRoOApgpCCBCBBEJLEErGsJ6pW6QHNMAx27NghEH9msxn79u2T3N5kMqG1tRXbt2/H+Pg4Ll68CK/XKxuNGm9ineonCIJINCQACeLvMAwDv98ft/5mZ2cF76empiLqusZCOqUESSSBQADPPPOMwEpnNpsxMDAQtfyawWAQlPfr7e1FIBBAKBTCzMxMhKUJiJy6V8OSJUsEPm5yFsCioiLJWtOzs7MCcWo2m2X74FfnUOOrev78eYH1TK0van5+ftRtCILIXEgAEsTf8fv9EeWn4gkbkBAv1JRomw90dnZKJnzWG9lrMpkQCAQA/KMsGF9MJ3KqUK5s3OHDhwUCsKqqSlWOPD2+qpngi3r9+vVUD4Eg5j0kAAmCkEQuwpPP9evXBRG5evqIxsGDB7FkyRJOPI+OjsYcpNPZ2SmwiqVaTB85ciSl+083bt++LXivpX4xEFlHmKyZBBEJCUCCICRRYyVqaWlRXJ+fnx+XiOrW1laUl5dj2bJlaZfTL1bcbrfAtxGYC3qora2Ny7nLRMTuE1qjiMWwll6CIP4BCUCC+Dt5eXlxsVhlC263O2pkZmdnZ9xEjLifWPwpxQIjlr4KCwuj+iIq0dnZKfl5TU1NXKydmUiygnUIIpshAUgQf8doNMbVN0osKvLy8lSVJssEGIaRFS58RkZG0N/fnxCfs3j6a8bSFz8vn1bcbrdiCppsFIEMw0R8li0BTwSRTL6S6gEQxHylpKRE8Dp9+nSqhxQ3BgcHBcLFYrEI1re1tXHLnZ2dCAaDSRtbJqFGRO/cuZMLWskGxJH4ZrM5RSMhiPkNWQAJIknMF0f0QCAgyBHY3d2Na9euCbaxWCx499134fF44PF48Nprr2Hv3r3JHmpao2T9M5vNnF+gx+NBfX09BgYGOP/Hw4cPR5xzOcRJuo8ePao51Y2aiOR4cfPmTcH7eCTV5qfOIQji74QJgog7fr8/DEDw8nq9SR2Dy+US7N/lcklux9/GZrNF7ddqtXLbm83mcCgUCttstohjHRoaEnw2Pj4e1+NTc2xyiMerBfF51XtdLRYL1wd/mb0Oo6Ojgs/MZnPY7/dLjj/RL63Ecu87nc6Yrq3Ud48giEjIAkgQf0dL6bNoTE1NRXympzyaEqWlpUn3jRLnq7Pb7bIBELW1tbBYLJyV6+mnn8ZvfvObeeMHGQv9/f0C65/dbo+wBlZXV8PpdHLpbzweD06dOiWbSzBTCAaDuHLlCi5evIj6+vqIqO4zZ84I3i9fvlxT/6FQKMYREkR2QAKQIP5OLKXP1BDPJNDAXI69ZApAt9uNbdu2ce8tFkvU4I62tjZO2Hg8HrS2tqK3tzeh40x3gsGgwPfPYrHIBnm0trbis88+43ItbtiwISljjDc3b97E2NgYzp07J/gD8cADDwgEYDAYjBDCFABCEImBBCBBEFEJBALYuXOn4LNXX301arvKykrYbDYuXUxfXx9KSkrQ2tqakHFmAq+99pog798TTzyhuP3OnTvx4Ycf4o9//CMnlg4ePJhUv7xY2bRpk+TnN27cQGVlJfdeHChls9k0p9gRRxFTEAlBSEMCkCCyhMbGRl1WzmAwiPr6eoFo6e7uVm2Z2bVrF8bGxrj2DocD9957L2prazWPRQ6tgQ1jY2OC99ESWvMRB1VoYWJiQlA5RY0V1WAwoKOjA1euXNG9Xy0wDKNLdPl8Ply6dAknTpxQ3U7sKnH06FHBez3pb27cuCF4H48gEoKYj5AAJIi/4/V6Y+6DYRg8/fTTEZUd+AwNDWHp0qUx7ysZ1Q0YhkFra6vgeKxWqyYhaTQasXv3boEVaNOmTXHNb6eUS08N0RJaxwP23uBjt9tVtTUajRHnamJiAjdu3EBpaalkMmo29Y7Y59Ln8+HmzZu4//77uXUMw2B8fBxnz55Fe3s7/H5/1IorgUAAV65cUZUQXAqLxYKCggLuvVRU9P3336+5X4IgVJLqKBSCmC+EQiFBhKzcy2q1hm/dupXw8YijVdW8+FHAUsfDj0TlIxUFLKatrS1if6Ojo7qPT+uxJeqlNsJVHN1qtVplj0dNNDb/nPP76u7ulo2gNZvNkufe6/UK9u90OhX3PT4+rutctbW1hYeGhiTvf3EkdFtbW9RzIIX4PlNzLgkiGyELIEHEAYZhsGPHjogSVlarFXv27EFhYSH3WV9fH65evYqenp60dXCXO579+/frrsW7c+dOfPDBBwIrTyyVLmIp23f06FHBOLT0dfr0afT19aG7uxs5OTmqLbHl5eWC97EEBTEMI7C6rVmzhlv++OOPueXr168L2j300EOcNffs2bPceS8uLhZEbB87dgzbt2+XnQpWe8wWiwWPPPIIysrKBL5+YsRR0QDw+OOPq9qHmNu3bwveV1RU6OqHIOY9qVagBJHpeL3eCOsFRNYycU439uVyucKhUCi1ByDi1q1bkpbM7u5u2TZqLIDh8FyONr4Vin3FYgnUg548gKFQSGBds1qtmq8du18pCxs0WK3E9xM/xyLf8ivuh5+b0Ww2y64DEB4aGlIcg9T9jChWPimk7olYrHbivrTmESSIbIEEIEHo5NatWxHTelLij0VOBFoslqQLIDnkBFq0KUG1AjAclp8+jLaPeKJXAIqFsVahwp5fKeGopV/+NKdYyInvM/H++ev492goFIq4L5Vgz4XFYgk7nc7w+Pi4ZkEs5zahN7n2rVu3IvqKdwJygpgvkAAkCI0oCT858cciJwLZB6nL5UqKf6AU4+PjusRfOKxNAIbD8udBr9+XVvRWApESyFqFq5xIUisAxUJNvH+xP594f0pWPvF9HU3Iy93napH6HsVi/ZPye012BR6CyBRIABKECm7duhUeGhqKGuRhs9miWkH8fn/UfrROo8UDqRJa4kAFObQKwHBYWgQmyxIaSyk4qfMUj2lGtSJIafo3HI60gomvBf/YxYJbbJ1NpFVWPOXM/nnSe8/LWa8JgpCGgkAIQgJ+XjNx9QIpzGYzdu/erSq3nclkQm9vL9avX4/Ozk7JlDHiXHHr1q1DeXk5Vq5cmbBSaiaTCUNDQ1y6FqfTmdCEzdXV1RgdHUVNTQ2AufQ4WoJBAoGAqrJfDMNE5IYT5/LjlwG8fv16RCCBGLPZLLhujY2NyM/Pj1taGyWGh4cF4xAHV4jvj5mZGUGwET8o4t1338XevXu595WVlZqCQfTidrslk0Pv3r1b9v7u6OiA1+tFbm4ulixZIkghc/78eclUNG1tbfEbNEHMN1KtQAkiHfD7/WGXyxV2Op2qUrmAZ7GIJZAj2nSy3D5tNlu4u7s7IdNbTqdTs+VHjwWQxev1KgaYiKc00/kVy5Qovx85C6DYuid3nfiWMLF1UmzlE4+ZH+iCBFhl5Sx10ab/pSyG0V7p4ltLEOkICUCCCEv7Iim9WH+9eEXwhkKhsMvlkowmVnolYopYzzHFIgCjkUkCMJYpTDUCUCzO5M6z0jSvWESKRZJ4fTzz6MmJPzUR1VrvA8r/RxDK0BQwQQCor6+PmpfNbDZj8+bN2LhxY9zz9xkMBjQ0NKChoQETExN47733cOzYMcWKIjabLSHTwfGe7ks3rFYrcnNzZddHyxuXn58vyIPndDo5FwGPx4PW1lb09vbGZ7A8GIbBkSNHuPcWi0XVfSiezjYajYIp7Bs3bgimro1GI6xWK3dMXV1d2LVrV1zuNYPBgO9///uC+9psNmPPnj1R7zu13zmz2YympiZdZQ8JIpsgAUgQmPN/s9lsEX5ENpsNFRUVqKqq0p0AWSuVlZWorKxEa2srfD4fLl++LOnjFM9auulMXl5eRKLm0tJSxe0T5ScpxaFDh3D16lV4PB5OzCSC8fFxgXD66U9/KrttUVERnE4nCgoKJM/V/v37AQDLli2TvK9//OMfo6+vj0vkfPfdd8d+AJgTl4cOHQIwlxDdbDZjYGBA9XcrFArB7/fLrs/JyUna95QgMp0F4XA4nOpBEEQ6MDExgZGREaxYsQKlpaVpWaWDreM6NTWF5ubmVA+Hw+12Y3p6mnu/fv36pIqwVBMIBNDZ2Yl9+/bptqC2tLRwy0VFRZLXNxgM4v3334fb7Y5pX9FgGAbBYDChYqqjowMPPPCAYoUQgiASBwlAgiAIgiCILOMrqR4AQRAEQRAEkVxIABIEQRAEQWQZJAAJgiAIgiCyDBKABEEQBEEQWQYJQIIgCIIgiCyDBCBBEARBEESWQQKQIAiCIAgiyyABSBAEQRAEkWWQACQIgiAIgsgySAASBEEQBEFkGSQACYIgCIIgsgwSgARBEARBEFkGCUCCIAiCIIgsgwQgQRAEQRBElkECkCAIgiAIIssgAUgQBEEQBJFlkAAkCIIgCILIMkgAEgRBEASABQsWzLtXb29vws5XeXm57H4LCwsV29rtdsVx3759W7bt0NBQys9rIl7JhgQgQRAEQRBElkECkCAIgiAIIssgAUgQBEEQBJFlkAAkCIIgCILIMkgAEgRBEARBZBkkAAmCIAiCILKMr6V6AARBEASR7hQUFKCysjLVw4jgk08+wf/8z/+kZN8PPvggTCaT5Lpvf/vbyR0Mj8rKShQUFKRs/3J4vV5MTk6mehgcJAAJgiAIIgqVlZX41a9+lephRHD27FmsW7cuJfv+r//6r5TsNxovvPACNm3alOphRGC323HgwIFUD4ODpoAJgiAIgiCyDBKABEEQBEEQWUbaC0CGYcAwTKqHkZYEg8FUD4EgCIIgiAwkbQWgz+dDS0sLcnJy8MYbb6R6OGkHwzD4yU9+gtWrV+Pw4cNpKwZbWlrQ39+PiYmJVA8lrQgEAmhpaeFe6fAnx+fzcTUp+/v7Uz2clLJ79250dHTQfUsQxLwlrYNAurq6AAAOhwPbt2+HwWBIyH58Ph8uX76ckL7Xr18Po9EY935ffPFFjIyMcO8bGxvjvg81+Hw+3Lx5E/fff3/EcQYCAe4atrW1pWUEXSpgGAYvvfQS+vr6uM8WL16MvXv3pnBUBEswGER7ezv3fnR0FNXV1SkcEUEQRPxJWwFYXFwMq9XKPSTdbjdqa2sTsq/Lly8nTEB5vd64C8COjg5OWAFAT09PwsQxSzAYxMzMDC5fvoypqSl4vV6BgBkfH484zitXrnDLq1evTuj4Mok33nhDcO4AoL29HStWrEBDQ0OKRpU4fD4fSkpKUjqGcDisetve3l5u2Ww2k/gjCGJekrYCEIBAAL755psJE4CZREdHBxwOB/fe6XQCmHvIaiUvL09WnAYCAXR2dmJ2djZCrEhx48aNCAuf2+3mlleuXKl5fPMR8fVra2vjrE2NjY3Iz8+Pi+Bwu92Ynp7W1GZqaopbPn/+vOZ9xmvsqSQYDAquj91uT+FoiEzCbrfj0qVLCen72LFjyMvLS0jfDz74oOy6jRs3YufOnbLrm5qacOPGDcl1+fn5OHr0qGzbZ555BnV1dbLrc3JyZNfFAsMwePjhhxPS9/Lly3HkyJGE9J0IkiIADx8+jGvXrmluNzs7yy2PjIygpaVFcx+1tbWaHkpOpxMbN27UvB8+J0+eFDxE4oVYPABz0+N69+VyuWQtTgaDQWBllMJms6GoqAjLly+PEHgMw3DtLRaLbLLQbEJ8/bq7u9Hc3IxFixZxn9fU1MRlynF4eDjq9VNCT1ubzSY57pycHNhsNs39if986OlDK3zrHzAnyuM5O6DFEklkFpcuXcKZM2cS0vcXX3yRkH4BKI452u/2hQsXZEVvtLbLli3DsmXLoowu/nz55ZcJu058zZIJJEUAXrt2LaaHEYuePioqKjRtX1BQgOLiYs374ZMIf0Ip8ZdIWMugxWLBsmXLUFRUJLiOXq9X8TyNj49zyyMjI1iwYIHmMcyXhyXDMNi/f7/Ar8zpdKK5uRkA0NraCgACEciKw/mAyWTCwYMHNbdzu92cADSbzbr60EIgEEjqd4wgCCKVpPUUMDGHWPyxokwrY2Nj8Hg83PuFCxcqbi8WYFoiQ8+ePattcPOUQCAQEfDhdDo50ceyfft2AP8Qgdu2bcPHH3+MnTt36vLvtNvtaGpq0tTm5s2bXPZ8PZbweE/ZDA8Pc8ubN2+Oa99SvPTSS9yy2WxGVVVVXPqNx59fgiCIeJMUARjtYcR3EPd6vVH7m5mZQU1NDYA5MfTqq6/Kbpsov4lkwDAMXnzxRcEDxGq14tChQ5pFgdvtFvTT1taWMJ9KhmE4a5eWB6laf8NMob+/P2L6UG7a3WAwRFgC29vb8e6776Knp0ezVTrWKfd4WMJjIRgMCu7X+vr6hO6vv79fcO+9/vrrcYtaJwFIEEQ6khQBGO1hxA/2YBgm6g/vzMwMt7xu3bqUPqgShZTlyGKxRPgoqcHtdnOCGZg730qOvbHCD/5oampSPZXJfwizwS2ZiNS1M5vN2L9/f1TfvtbWVtx7772cJc7j8aCkpAROp1NzKiQ2clstN2/e5JanpqY0BRYpBRTpGc/x48e5ZYvFglAopCvQSc1vQyAQEAh1SllEEERWEE4DnE5nGEAYQLi7u1vT9qOjozHv3+Vycf25XK649uf1ejW3Hx0dDZvNZq4P/stms4VDoZDqvvjnCkDYarVqas9H7XFZLBZuO7/fr6rvUCgkOOZbt27pGmMqCYVCEeebPedaj8fr9UbcA2azWdP9zr9eiX6p+d4kczzsKxri+85sNuv+fsihZTxEalG6l+rq6hTbrlu3LmH3cSAQkN3vmTNnFNv29PToPuatW7cqti0rK5NtazKZFNvGwuDgoOK4BwcHZdvOzs4m7DqVlZUpjvu5556L6fcq3qSFD2B5eTm3fO7cuagWI34Ez3333RfXsWi1fMj1oQepYAFgLvqRnUbq6urC2NhY1GlBqenjtrY21T5lUsmx+alBTp48KVjPJrz2+Xxcgmqr1Sqw/vItQIWFhYJxuN1uzj/R6XQmJHl2omAYBoODg+js7BT4WALKkdZKFBcX4+zZs4L7wePxoKamhnN7mI+W72TCMAx27NghuGbJyKlJEOlEbm6u7Lq7775bse3ChQtl2y9atEix7RdffIG//OUvsusXL16s2J6InbQQgPwUIn19fYo+boFAQCAw4v1jHUtalVjw+XzYunWr4GFksVjws5/9DCaTCbW1tdi5cyc8Hg83LTg0NCTpxyfVl1TggRLRkmOLzxGb8JqfA8lqtQq2OX36NNenOIr4zTff5JbV+nsFg0GcPn0aCxcuTEmOSCXhZ7PZsGvXrpiErMFgwN69e2GxWPD0009z+xgZGcHIyAhsNhuamppkhWBpaSlcLpfq/U1NTXHX1WazaYqgLy0tVb2tXP9Hjx7lvttK4z5//jz3x8bpdKKgoECwXm3alhdffDHC51RvwmqbzRY1StlisejqmyASyaeffqq77X//93/rbvvCCy/gwIEDsutnZ2dJBCaYtBCARqMRFouF+/H3+XyyPjj86hJr1qxJyviSQXFxMaqqqriHvNhaV11djYGBAYFv2aZNmwRCimEYuFwubNu2TdB3skpZ+Xw+Qe4/tft0u93ctbfZbKoCGBiGwY9+9CPufKUibcrg4GCE2LBYLFi3bh0KCgpw+vTpuO2rqakJVVVVAotuV1cXurq64Pf7Jc9ZcXGxJiuhz+fjBGBFRUVCq5JI9c+3MKvd98aNGyOOUY0AFAdF8f2QE0Uqcp4RBEHIkVQBqJQQml+1oL29XfbHcmxsjFs+d+5c1ATTanKHabWUaEFLFPK+ffswOTkp64RuMplw6NAhfPe730V7ezucTif38HO73ZyFkMVqtWLPnj26IkLXr18fEZHNtyoODQ1h6dKl3LrCwkIAcxYZh8OBJ554QvW+Vq5ciaGhIbz55puqU5f4/X7BsZ44cSLpArCurg5msxkejwdmsxl2ux11dXWSwjAeuFwu3Lp1C729vQJLHSXZ1k51dTXnWmG1WrFjx455FYFOEAQRjaQKQLUJoVlrUDR475pzAAAgAElEQVTU/GCrEYBaLSWJwmAw4Ne//nXUbfbu3cvVjfX5fDhy5EjEee3u7kZjY6PuKXKj0SiYvpyYmBAIrqVLl0qes9bWVmzZsiWq74h4X7W1tZqmcfPy8jjxBQCrVq1S3TZeGAwG2O12hEKhmM61FoxGI1pbW7Fx40YcOXIEu3btEqyPV93dWCpg6PV7TDb79u3DkiVLsH37dvj9fu5zLeOPluA8EAjEMkSCIIiEkRZTwIR2SktL0dLSEiH8bDYb7HZ73K1C7733nuA9wzCy2+r1e2MYRrWIMhqN6OnpwfHjx7Fo0SIukXKykRIKUtZTMfyky4C6/Jd8a3JxcXHCK2OkEqWk43rqFEvBz72YKEKhUEL7JwiC0EvKBKB4CpFQB1seS2z9tFgssNvtCfH1CwaDEUEfTz/9NAYGBmSFZkdHB8rLy7Fy5UpFQcj6LR45ckRTzkAgfSy3YsTWUzXE6zi01N3lV4aJZ+WL/Pz8mPtIxBQ6QRAE8Q9SJgDlphCTRUtLi+Y2fIuL2+0WlKpSQ1FRkS4/tWAwiF/+8pc4cuRIRLSpxWLBE088kdApN6lgBo/Hg/r6ekkRyK+pGi04w2Aw4MSJE/B4PMjPz5839W9Thdq6u+IgiHhWviAIgiDSn6ydAtZTnon/YJ2entbch1rLDDAn+t5//3288847sr6OrPgDtNXpZSktLY0qwhmGQWdnJwAIfO4AeRHID9QpKyuLOo5HHnmES20yMTFBQiTBiCvDjI6Opt05D4vqUPORKrGXrvCrq2hJq0MQ6cDly5cxODgou37btm2ygY63b99WTPMyPj4e8/iI2MhaAZiOqBF9fFjRpBeXyxVVAA4ODnKir6mpiVtm02ZIiUC+xVCNsNiwYQO3/N5776WdGJlPiMWf2WzG8PCwZms2S21tbVJSDCWTePkYAsCdO3fi1hdBJJtLly7h5Zdfll1fV1cnKwBnZ2cV2xKpJ2UCMJ18t5SsDVKBFmKiRQ1GixQ8fPgwzp07l3ZpKPjWP6fTiZycHG6dw+FASUkJHA4HPB4Prly5ApPJhGAwyB1HW1ubqv2YTCYuD+SxY8cS7pifSNRaYsXVYtS2y8/P1y24pCxnbGJxvcxHq5ae2QGCIIhMgyyAacC1a9cixJ/ZbMbmzZvx2WefcaXAxNUz9KBl+szlcnHioL6+XjC1C0Ag1NgULu+//z732dq1a1WPi50G9ng8GT0NrHdqUm07m82mWQDKlRgkEg/fmhiP4BiCIIh4QQIwDXjyySfR1dXFVZF44IEHOAGkx7cvHgQCAa6iCJtsWCwAAURY69555x1uWUudZv408KVLlzJWAKYbgUAAzzzzTISrgNVqVSy5KIV4+thqtaKuri5uY+UTzWqeSJxOJzZu3KipDd86zsIwjOA7oyUpPEEQRKJJqgCcnJxM5u4yhsrKStlyXqmCnfoFoLo6RyAQEEz/ahEX/GngVFT1iBdqK8rw6+5qaafFiiS29rK1mdk0Qn/84x+5WtN6+tIqIDOFgoICTZZ2hmHw4osvApgrYL9ixQqEQiEuuh2Ys+gXFxcjEAik1fecIIjsJakCMJaAhflOOj0UJiYmOD8om82m+mF46tQpblnL9C8LPxo4Ux+UatPx8Ovuammntu/nn39e8H1ja0sD4EoJjoyMYHp6Grt375atwhIMBvHKK68I/OKcTie2b9+eUPGnFDE/OTmZVr8lBoMhqt+g3W4HwzAoLCzk3Dsy2deVIIjMJ2kCMBgMcsta0qEQyaeyspKL8hWXGlPiyJEjAOasHXoCFfiJiE+dOpWxVsBUc/PmTU4gmc3mCIG3d+9eLFq0iAvg2bRpE2w2G3bt2iVIYN3f34/Ozk5BkMjQ0JCmkn16Ucpl2N/fn1YCEABXV1gMWyOaLdsIzAXexCvpNkEQhF6SJgCvXLnCLS9ZsiRZuyV04nA4sH79etUVLdxutyBdjB6Ki4u5XIPnzp0jAaiT2tpaWK1W5ObmRog6ltbWVpSXl2Pnzp3weDzo6upCV1cXnE4nysvL0dnZKRBZVqsVe/bsyUirbDI4ePAgDh48iEAgwJV/y8vL010Wkcg8jh07hi+++CIhfX/nO99JSL+x8tBDD+Guu+6SXPfll18qtt29ezeeeuop2fWLFi2KaWxK/SaqRrfcuUhXkiYAz549yy2Xl5cna7eETrSWWeP7DD722GO69/vQQw/B4/Ggr68PHR0dig9QthrL4sWL8dRTT5E44RHt3AFAdXU1fvOb3wimeMUl//gWLCI6SvcgPyl0UVFREkZDJJNsDPL5wx/+oLvtt771LXz3u9+N42jUsWDBgpTsNx1JigAMBAKCFBQrV65Mxm5Vo1QWTiryVczRo0fjmjxWDv4DRC/i/HPxwO12c9aitra2mKwea9eu5e6VK1euyE4lB4NBQUQqMDe1Scyh5hoEg0GBZV6K73//+1i4cGHcfTKnpqa4KVGW2dlZblm8TtyWJR7fCaX+48nvfvc7blkqapggCCKZJEUA8q1DsQqERBBr4tdk+SNt2rQpKfvRCsMwXATv448/Lrudmgcr++fAYrEobjczMyN4/8EHH6gYafxhGAZ+v19zO7FwURI8SmiNVvX7/RgbG5NNPG6xWPDP//zP3Do2Yphdt27dOtx7770x1/J2OBwR1kY+JSUlqvpJxHfC4XBg4cKFqKqqQk5OTkzCNxgMYmZmBpcvXxYcb2lpaRxGShAEoZ+EC8Dh4WGBwFISCERmUltbi9raWvh8Pk4UuN1uTE9Pc9uEQiHFBz6L0WjE+Ph41DyAxcXFXKAKAK4mcrLx+/2qxYoSevuQq2LDFx5TU1Pwer2KlWacTqcg/+SePXtw6tQpnDhxgvuDI1V60GKxYNmyZVxFkNLS0oz0feP7nwLgcmBKYTabJYM41EYnsylhCIIgUklCBWAgEBD8Q3c6nWn5w5fqUnBqcTqdKCgoiKmP8+fPJ6zUFf/a5uTkyFa3iPYAVJsE+tChQ7BarcjLy0vL+yoVBAIBFBYWRt1OKuk4H5PJhObmZjQ3NyMQCGBsbEzy3pESPGoihfUkW1aLXjE9MDCA+vr6qKXxYi2ft3//ft1tCYIg4kVCBaDBYODSI5jNZmzfvj2Ru5v3bNy4MWOEjtw4zWZz3B6ABoNBd13ceJGXl6c6iXMy4CfU5mO1WlFSUoLy8nKsXLlSk4XOZDLBZDKhoaEBBw8ehM/nw+XLl3H9+nV88MEHEftS4+OrNdlyMjCZTDh79izGx8cxPT0t8OvVmntQnOqqoqIC+fn5ms89QRBEokioADQajTh48CCefPJJGAyGtKoaoGT148OmdxDT0NCgOjJS7b6kKC0t5QRGPKLM+P1p9UPKz8/nHmzRnNgNBgO8Xm/E54WFhWl1H8SK0WhMuwjZn/70p3jkkUdQUFCApUuXxv2cS0WI+3w+zMzMYHp6WtZnLpZ7TwuxCHL+n4p0u65Eavnkk08E2SzShUuXLsXUXumYZmdnsW7dOtn1Fy5c4NIeifnGN76hWA70iy++UNz3D3/4Q3z1q1+VXa+Ez+dDbm6urraJ5Pe//32qhyBgQTgWdUIQBEEQ84RU1qBOFD09PdiyZYvseqVj3rp1K9566y3Z9eXl5bIC1GQyKQbI2e12HDhwQHb97OwsFi9eLLluaGgoYXXIU0my5dhXkro3giAIgiAIIuWQACQIgiAIgsgySAASBEEQBEFkGSQACYIgCIIgsgwSgARBEARBEFkGCUCCIAiCIIgsIym1gAmCIAgi3enp6Un1EOLOD3/4w1QPQZInn3wSZWVlsuvvvvtu2XWrVq2al9cq2ZAAJAiCIAhAMV8eEV9+8IMf4Ac/+IGutkuWLKFrFQdoCpggCIIgCCLLIAFIEARBEASRZZAAJAiCIAiCyDJIABIEQRAEQWQZJAAJgiAIgiCyDBKABEEQBEEQWQYJQIIgCIIAsGDBgoS87rnnHsX97tmzJ2H7jvZKFXa7PWHHNDQ0lLBxl5eXy+63vLw8YftNBCQACYIgCIIgsgwSgARBRIVhGPh8vlQPg4gRhmHAMEyqh0EQRBpAAlCEz+dDf38/+vv74/LAO3z4MFpaWtDS0hKH0RFy9Pf3x2VKg2EY9Pf3o6WlBRMTE3EaXeYzPj6OkpISLFiwALt37071cLIO9jfJ7Xbrah8IBLBlyxbk5ORgcHAwzqMjCCIToVJwIi5fvozGxkYAgMvlQnFxcUz9Xbt2DV1dXQCAgwcPxjw+Ir709/dj4cKFWLlyJUwmE4LBIHf9i4qKUFlZmeIRpgdnz57llteuXaurD4Zh4Pf74zUkzcT6XU4l7D1ps9lQXV2tub3RaMTVq1cBAJ2dnairq4PBYIjrGAmCyCySJgDjYQGz2+0wmUya+2LbEdrx+XwoKSlJ6RjC4bDk54FAQPG6soJD7sHPMAz3YLVarejt7YXJZILZbIbH48G5c+fQ3Nwc8/gznWAwiPb2du79fffdp6sfv9+f0ntJ7j7KBgwGA+x2OxobG+HxeDA4OIiGhoZUD4sgiBSSNAHIWsFioampSVdfbDsxExMTGBkZwc6dO1X9G25paUF1dTXuv/9+GI1GAHMi5NSpUyQUkkh/fz8aGxths9kUrap8weH3+yPE4vj4OLe8Zs0abvmhhx6Cx+NBX18fOjo6uGudaWj5o1RUVMTdw4cPH8a1a9e4dbOzs9yy2WzGiy++KNtPbW2tLgsV8Q8mJibw3nvvob6+XvEPzsMPP4xVq1bh2WefBQCcPn1asd+pqSluubOzU3FbEocEMf9JmgC02WwRn42NjcHj8cBisWDZsmWYnZ1FX18fgDmLTG5urmD7nJycuI1nYmKCs2SsXr0atbW1Ubfv6upCV1cXRkdHUV1djWAwiPr6eng8Hly7dg379u2bd9MqOTk5ktcuGvxrCUhff70sXLgQwNwfASUBePPmTW5Z6kHKn9bcsGEDt7x27VrO4vX+++9HvTfSFS1/lPjXh++2IMbj8cDj8cj2U1FRIbuusLAQXq9X9Zj4OJ1O7n5S28fNmzexadMmAHO/J5nC008/DY/Hg4KCAlkB6PP5MDIywv2B9fv9nDVbDR6PR3H7bBWAW7du1d325MmTmJ6ellz317/+Fb29vbr3PTAwgFAoJLkuPz8fGzduVD1OMT09PbLrbty4oTjuH/7whygrK5Nc941vfEOxbU5OjuIxv/322/jrX/8que7f/u3f8P/+3/+Tbas07rvuugtPPPGEbNtE8r//+7+CP9ditmzZksTRAAinEJvNFgYQdrlc4XA4HPZ6vWEAYQBhr9cr287r9UZ9OZ3OqH1ZLJYwgLDFYuE+c7lcXDt2XOFwONzW1sZ9HgqFwuFwODw+Ps59BiBstVrDfr9f8hhTfKqTzujoKHfcZrM5rn1L3Sf868bCXjObzRbRx61bt7jt+dc/HA6HQ6GQ4JpmKvx7M9qLf47496zNZov6slqtkt8ZtbDfJyX0fI/441L6PUk32N8u/r0nvk5DQ0OCbfjfiXi8CO2sW7dO9/l++eWXFfs2mUyybdetWxfTuGO5Ty5duiTbbyAQUGx74MABxXHl5ubKtq2rq1NsW1dXJ9s2NzdX13liKSsrk+27rKxMse1zzz2XVt+7jAwCUePMffny5ajbPPHEE9y/aJ/Pp+grxlqEnE4nZ+WrrKyE3+/nrIB9fX24evUqBgYGst7ncHh4mFvevHlzXPvmX6ebN2/KXrcPPvgAgLRVij9d9tOf/lSwzmAwoK2tDe3t7ejr68OePXsy8npGs5TxA56Kiookt+FbWOW+Iz6fT2Dt1UpOTg7MZjOampri5krR39/PjamtrS2jAkDYZLJKLggXLlwAAEmfSpfLJWnBY10nAGS1PyRBEHNkdRqY9evXc8snT56U3Y6fekFsajeZTBgYGOCmmDweDwoLC3Wna5gPBINBwRRifX193PfBnu/f/e53smMYGRkBACxfvlywjmEYzgfKbDZL+qxZLBZueWBgIC5jTjbFxcWKLz7R3Cs6OjpQUlKCjo6OiHX8qXZ2el4tgUAAABSnlfVQV1eH0dFRtLW1cT5ymQI/yObKlSuS27B/bu69996kjIkgiPlHRloA44XRaITVakVfXx+OHTuG1tZWye3efPNNAHOiQMqSYDKZcOjQIQDgrA41NTW6/Z3SkWAwiJmZGVXbHj9+nFu2WCwIhUK6cioqWW1Yy4fcOeY/OMX9DA4OcoJj8+bNkn6blZWVsFgsGBkZgcPhwJYtWzIyGGRiYgI3btyQtAhdv36dWy4tLVXVn8PhAADBd+XOnTvc8tKlSzWNj3+d5HyJxKjN9ehyubB3715N40kHDAYD97t09uzZiD8o/D83K1euTMUQCYKYByRNACqlE2lsbIxwSBZvGy3iUy/sD63H45FM/MtGCgNz6WTkMBgMOHToEHJzc9HV1QWn05lR007ROH36tCYncxZ2il0PStNUrOWjr69P0tn34sWLAOauL1/g8a1/gLLTrd1u58b+2muvZZyY2L17N+e6sH79+ggBy1qRgLkADSVaW1vx0UcfoaurCw6HA+Xl5XGJ9mWnMoE5x23KuzjH+vXr0dfXh3fffTfivnv//fcBzFmvlVwTxFHgk5OTsutYKGUWQWQPWW0BBITTLe+99x4KCgoE699++20Acz+20fKfGQwGHDx4EBUVFairq4v/YAkO1tJkNpsRDAYj1n/22WcAhOldgDmrEGv9czqdila96upqzgrY3t6Oxx9/PKNE/YoVK7jl3t5egdWOYRhO3FosFlXR6/v27eOiu2tqanDr1i0YjUaBJVEL4vyCjY2NyM/Pjyos1VrW8/LydI0rHWAtsh6Ph5smZ2FF80MPPaTYh1IUuNw6uZRZBEHMP1IiAJ1OJwoKCnD+/Hl0dXXBZrOhoqICU1NTcDgcsFgsXJj20aNHdVuQ1GAwGDA0NIS8vDxUVlaiv79fsH7Xrl2oqKjAwoULIx6SDMNIPjjjlUKBYRi43W7cuXMnrTL3s9eLD/86uVwu2bbsNQf+cR/wUWtlLCws5ASIFHv37o2wnAQCAWzbtg3AnHBUE3Lf1tbGHdfzzz+PX/ziF2lzHaJRV1fHJbV2OBzYuHEjJ2D5U/KrVq1S1Z/BYEBHRweuXr2K/fv3c+f+9u3b3DZaBDLfcsuOs6amhvPbk7u2mSTC9VJcXIzu7m5s2LAhwiK3d+9ePPXUU1HvQ/H3kP/d469jf3cJgsguUiIA+Q8iYC5Ks6GhAT6fDw6HA8uWLeNE1Pnz5xM+HqU8b0ajUVbQ7d+/HwBUJ5LWyosvvsj9YLOVKtIB9nrx4V8ntQJYfB8A6gQgX7ywfon8JLdif8O8vDzcfffdeOmll7jP7Ha7Kp++yspK2Gw2dHV1YWRkBPv378+YqWCDwYDdu3dzufCOHDnCuVFcunSJ22716tWq+zQajYJpW37Aj9lsVt0P+10H5u7tjo4OtLa2oq+vD+3t7Whvb0dbWxtWr16NpUuXCpJRZwtKEdFqpmmVvof8dfxrke2wEdh6eP7553HgwAHJdXfu3MEDDzwg27a7u1uxRvMf/vAH2XUXLlyIadz83wKt8GcZkslvf/tbxWNOVcnJ69evK47r448/TuJoopORU8A+ny9qmpdowtHtdksm7eS3k+ujoaEB/f393PTVhx9+mJBUIfxpmkyvShFPopUTE693uVwIhUJcgI7FYtFkpd21axeXtLy9vR2LFi2SDRhKN2pra7lp7K6uLjQ1NaG4uBgnTpzgttESSCD2HRsbG+OWo01JsjAMI0gA63A4YDQacejQIaxZs4az0vKnh/msXr0aVVVVqsfM0tXVhfHx8bT3MxRXYuEzNjYmuAb8Ci4sU1NTkkFXcn+S+FHc7HJeXl5W/tbEIoby8/Nlg6n4VnIppqenZZNIRyMUCsU0brUBYOnE7du3YzrmRPHnP/85LcclR0YKQH7+Mr0MDw9HrZQgt76hoQHLly/npq3Y/H89PT1xnZ5iA1SAOetKNv4gxwv+VPOqVasipvqj8f3vf5/zHXQ4HLj33nszpkIIP5jl+eefx1tvvSXw/9Pyx6WiokL2u/f4449Hbc8wDHbs2MGdy+7ubu47YzAY0NzcjMceewy//OUvce7cOcn8gtGqkSiRCdPHWiqxSFXYcTgcUS16cn+iWGuxXC5BgiDmDykVgOw/Uq25w9KByspKDAwM4JlnnsHIyAg8Hg9KSkq4MnHxgM299tlnn+Gpp56KS5/JQElcxWNKX/zQi1Z2jg0s8Pv9KCwslLUsRYMV5GazOaPSb/CDWUZGRgTWy3Xr1mnqa/369XC5XILrWFRUhKqqqqjiKhgMctO8wNz5lJrmNBqNaG5uRnNzM3p7e+Hz+cAwDG7cuCHYTu29tGTJEu4PQKb4bxIEQSSalApANppPnDtMi7+PVCCBGKloQLvdHhHxdvz4cYE4cDqdijUWTSYTfvGLX2DHjh2C/H/x+vdsNBozZqqRT6zW2WiI0wENDw8LBKBcuqBYp+gdDgdyc3MzMlUG3wrIP1dKfklSsD6xeu7vK1eu4OrVqwDmxB+bOzMaxcXFgilLNqXNfLVQHTx4UHAPDw8Pc5Y5NemwtFYC4afo8nq9GWElJQgidlImAIPBIPcgEucg6+vrw44dO2AwGKKKQalAAjWIH+AMw+Ddd98VfFZQUBC1b4PBgN7eXpSUlHDTLo2NjSgtLaUf0iTBJupmcbvdslZYfvQj+zDkR52L4UdOAvLiMt2prq4WuBQAc24F0fzhtE6Vs0jd/9XV1RgYGMDPf/5zzYFTfLcPr9ebVe4Q77zzTqqHQBDEPCRlAvC1114DMJdmg30QFBcXc3510XLuxRt+dQiWUCikuj1rqXM4HPMuCbRWlBI4860Q8cDn80WkCaqpqYHT6ZS0nvItI+w4+FHn8xmHwyEQgGpqNOu9Vi6XS7ZqDhtFrSaYi4U/3Xvy5EnV7aQSYGcSgUBAcM0mJydl00+J2/ETnrNtWfiBJNkYYU0QRIoE4MmTJ7mpVrHj+Ouvv45Dhw7FVFxeK+LasKwQ3LZtG5YvX67ap6+1tVW3RZLQx5EjRyQ/lypZxoefPHrJkiXxH1gaIra0R3OdiAU1fr16g7m0pCzJdGuhuA71yMgIduzYgUOHDsmKwPz8fIRCIV2JoLOdWFw7Zmdn8eGHH0quC4VCMfX9+9//Hl9++aXkum984xvIz8+XbfvJJ59oMmbwYRgGn3zyiez6f/mXf8E//dM/6er7T3/6k+z5AoC//e1vsuvuvvtufPvb35Zdf+vWLXz++eey/SrtNxp//etfdbf91re+hUWLFuluH29SIgDPnDkDQBgByFJZWYnKykou511LS0vCf6zEtWH5lsCamhoMDQ2pjvhUEn8+nw8zMzOYnp7G1NQUPvvss4zJKZeO+Hw+7t5gc/UB/wjWUBKB/LrGiRRC6YTb7Ra87+zslEwwLvZBUwvfuqu1JjARSTAYlBS77J9jORGYl5eHnJyciGCoyclJzlouFT0MADk5ObEOO6OJJX/cgw8+yD3bxOTm5uLTTz/V3XdhYWFERRiW++67D7/97W9l2/7kJz9BT0+Prv0ODAwIUjaJuXTpku40MlLJ+tWyfv16/OpXv5Jd/+ijj8rmVfzss89S5sO9e/du2TKMqSAlAvDVV1+F3W6PW7RsLPCtf3IBJZs2bZKdUuT34/f7uWjFUCiEa9euCfKkSaVeIAGon+effx7AnODjVyZhgwtYESiVsoVhGG5ZbRR6plt2xb6SHo8Hg4ODaTH9HS34gC8utWybybB/gsXpoNjUU8A/RCA/lx8wZ8kSi/j+/n5OAGaqLytBEPEjZT6AyRJ/0fxl3njjDc7it3HjRoFvUVtbG959912ulBbwD2sSm6xVnIKEABYsWJDwfQwPD3MPM6vVKkiiajAYBCJw06ZNEQmA+SlFssFa5Xa7ufPFd3OQswLqgZ9omIgNvvWPLwCrqqq46i58EXjnzh2ubbZb8QiCUEfKagHn5uaq2pZvQdNDTk4OLBYLHnnkkYicY/wSSDabDcXFxQIBuGLFCjz11FOor6/nRODChQvR3NzMVSvQgs1mQ1FREXJycrB8+XLKSaYThmE4y6nFYkF1dXVEtCorAtm0I2KLET+oQOwbJ7ddJsMPCNi/fz+XCF1sBZSrkKMEG2jx0UcfxXXM2cwrr7wCYE6si/8s19bWwul0wuFwcPc3X3ybTCbJABv+vSwX3Z3pQTMEQagnJQIw2RazkZERLFu2TPAZwzDcFCIwlydNCpPJhJ6eHm769ty5c2hubhb4nAFz/9Jzc3MjBJ7T6eSON1umXeT8iwChH5Je9u/fz1mw5K4bMCcCBwYGMDk5KRDbDMMI/AXnuxDnT/2xgjkvL487B42NjdyDX02FHDFSgRZSuTeViFbeT++2mQj/Gsjd362trfjoo49QUVEBg8HAiW+LxQIgeoCN3LpMD5ohCEI9KRGArFhSA1uDVQ98Py8xb7zxBvdQ7O7uVnQKLS4uxujoKPr6+ripRTaRdGFhoaKAUHuc8wklocsXI3qYmJjgIshtNltUVwKTyRRxbcfHx7nlNWvWKLZnU2Qoidp0hu/jCvxDUBQXFwv+xPT29sY16TiJCH0Eg0HOum02m1FXVye77b59+7hl9jqK/+gSBEHIkRIB6HA4VDvUt7S06BaAchFdfP8as9msymG8urpaIDYyrRLEfIHvr6dk/ZNDLIg2bNiguL1Wa7Xb7UZnZyfa2tqiJllOBnxrqdVqFdzDdrudEw4OhwNbtmyRrJATDXYKXavlcP369Vw1oGicPHmS+84ODQ0p+m0eOXIEs7OzcDgcitP7fNgaxSUlJdi+fXvKrMI3b97krtf+/fsVx8Gu41dJ4QdDsSjl5QTmT9AMQRDaSGkpuGSyePFibtloNKK7uxvbtm3D66+/nrZTgPxkrk8++WRaCB0UkCAAACAASURBVIpUYzQa4XQ6sXDhQl0i3OVyCVJhxFvId3Z2cjV3u7u7JWvdJgufzycobShOKWIymThfMiB+VkCr1apqO6PRqNpSyPdnW7p0qewfyMOHD3NCtKSkRPXxjI+Pc2L/zJkz+NnPfpaSP3mVlZUYGhrCO++8ozpQju8nrTclBzGHnj+VLOJa1Vo4deoUTp48Kbv+T3/6k+J+lcYdix9zRUUFDhw4ILv+X//1X3X3/eijj2Lt2rWy61944QX8+c9/llzn9XoVj1npj+U3v/lN/Od//qf6gYpwOp34+OOPdbdPJ+a1AOTneluxYoVgHfuPN51F1TPPPMOJlbGxMVy4cCHFI5pjampKYHUAhNUExOvEbVnEqSvUsmXLFtx9992a27ndbkHwTrQfe/5xFBUVqdrHW2+9hdbWVvT19WHbtm24du0a9u3bl/Q/GWIf17a2NknRtGXLFk4AslZAPdO3/BxlqXR7aGxsxLlz57gUQGzQVjSqq6sxNDSETZs2YWRkBNPT09i/f39KUlXV1tbi/vvvV709mwzdbDZnfKqiVKMkdhLJ+Pi47n3//ve/T9i4v/e97+F73/teQvpeu3atYk68l19+WVYATk5O6j7mr3/96zHl4uvp6SEBGAtaHvzRyhQdOXIEdrtd8G+dYRj4fD7F6TuDwZBS64wa+L5yHo8HwWAwLXyrHA6HYjUGtU76bIF7reg5B263GzU1Ndx7l8vF3TMMw+Dzzz8X9MswDI4fP869V5ss2mg0ClLQdHV1YXZ2VrFyQyLg+7iazWY8++yzsuNlfQGdTqfu/fGtUGrFsl7Y77ccO3bs4L77Wqr51NbWYnR0FDU1NfB4PKipqcHo6GhKRKDae9ztdguS2EuhdK4ASt9DENlKSgSg3gc/C7/sTVdXlyrfo0ycGmGnqYG56cp0EH+ZiFj8OZ1OQfLjYDAY1Vds5cqVqvcnzkMYrXJDvGEYRjAFsnv3bsV7x263Y9euXYrbuN1uDA8Pc1HufE6fPi34s1VWVibZh1R9WhYt+TS11gmvqamJmjyapbq6mhOBbNtUiUA18M/Zxo0bJbeZ71HTBEHoIyOngO+77z5BMttoWK3WjJwaaW5uRllZGUKhUFo9gJxOp+zDJlbi/bDq6OgQWCulKrpE8/VyOp2a/cHkRCBb3SGR8Pedm5sbtYyh2mNT80fLarXKulVEq0+bSLZu3YqBgQFVxyolAsWJxNOBiYkJ7r7K1N84giBSR9IEYGFhoeqIPyn4VgeDwYCzZ89icHBQ0cF18eLFWL16dVqJJ62k20MHmJsOzZSHTXl5ObesVM6vu7sb165dE3y2ePFirF27Vvf9w09GzZbv0hIBHwvsvuUKomslWnoRs9mMzZs3Y/v27bLbSNWnBYAlS5YoTrErWe9zcnIURd3w8DA2bdoEj8eDmZkZ1WK3uroaLpeL8xV+++230+67ODMzw/0RVgq8ifa7y4+wJggie0iaADQYDHF98BkMBjQ0NKRFHVMlioqKMjaHHJ/S0lK4XC5uOVGw+9AKf3x8WGvOxYsXFSNCE+UPyiajrq+vR09PT1KFs8FgiNuUs8lkQjgcRjAYFARXAXNJn9W4J0jVp000tbW16O7uxoYNGzRbcRsaGnD9+nUsWrRIUdgmA/Y3hO9fWVtbi+rqarjd7og/Kfn5+VybaPfczMwMty2VkSOI7GFBOFqSKIIgYiZaTWoiPaHrll0kqo55bm4uPv30U9n1e/bswcsvv5yQfUcjURLgww8/VPzTdeDAAcVo3HvuuSdqEKgeol2LaJSXl+PSpUu62kY75mSTkT6ABJFpkIjITOi6ZReJEBxAdGH5/PPP47nnnkvIvqNxzz33JKTf73znO4rn85vf/KZi+w8//FBWnI6MjCjO/vX393NlEcVEuxbd3d144YUXZNffuXNHsX0mQQKQIAiCICAsGJBMvv71r+PrX/96SvadKNGbm5sb0/lctGiR7Lpof8wMBoPuff/lL39J2DlJN76S6gEQBEEQBEEQyYUEIEEQBEEQRJZBApAgCIIgCCLLIAFIEARBEASRZZAAJAiCIAiCyDIoCpggCIIgAAwNDaV6CHFn1apVWLJkSaqHEYHP58Pk5KTseovFgq99TVqiFBQUoK6uTratUmWhL7/8EiMjI7LrP//8c8W+f/vb3+L27duS6xYvXowHH3xQsW+le2zTpk2y6xIBJYImCIIgCCQuEXQq6enpwZYtW2TXJ+qYTSYT/H6/7Hq73Y4DBw7Irp+dnU1IWp7bt28jNzdXdv1zzz2Hzs5O2fVKiaDLyspw8eJF2bbRjjnZcoymgAmCIAiCILIMEoAEQRAEQRBZBglAgiAIgiCILIMEIEEQBEEQRJZBApAgCIIgCCLLIAFIEARBEASRZVAeQIIgCIKIQmVlJV544YVUDyMCn8+HXbt2pWTfnZ2dKCwslFx39913K7b9j//4D6xbt052vcFgkF13/vx5/Od//qfs+hdeeAEVFRWy/Q4ODsq2XbZsmey6aPj9fjz66KOy671er+6+EwEJQB0Eg0EYjcZUD4MgCIJIEgUFBUlP1KsGpZx2iebBBx9EaWmprrbFxcUoLi7W1XZqakpRxG3dulV23de+9rWEXcfbt28rjivdSGsB6Ha7MTw8DAAoKipCc3NzSsczPDyMd955B319fRgdHUV1dXVKx5MsAoEAlxjTbrfDZDJJbtfS0gIAqK2tzZpzQxAEQRCZSMoEYCAQwMzMDJYuXSprTZuenkZXVxcAwGazJXN4kty5cwd9fX0AgL6+vqwROaFQiLsOTU1Nstux20iZ3gOBAEKhkOp96v1nSBAEQRBEdFImAE+dOoVt27YBANra2rB3795UDUU1/PqAfX192LNnj6w1LBaCwSBOnz4d9375rF+/PqnT2J2dnZxAVANVKCQIgiCIxJEyAXjixAluefXq1akahiYMBgOcTiccDgcAYGBgAK2trXHfz8zMDBobG+PeLx+v10t+jBmGz+fDzZs3cefOHSxfvhx5eXkx/wFJRJ+BQACTk5OYnp5Gfn4+8vLyEm7RZRgGfr8fly9fBgCUlpaisLBQ0ZFcT595eXkJ/94k4poQBEGISYkADAQCGBkZ4d7ff//9SR8D66+mlcnJSW752LFj+OijjzT3oeRHl05IFQkvKSmJ2q6xsZETsF6vV/DwN5vNqKqqkmw3NjYGj8ejc7Tpidvtxs6dO7nj0mrZDAaD6O3t5f50iLFYLHjiiSdQV1enWuwkok+GYTA4OIjOzk7Ja2g2m2G32zX1qXa/b7zxhuyxOJ1ObNmyRZNo8/l8OH78ONrb2yXX22w2NDU1xVXUstfk2LFjkufPYrHAbrfH7HbCMAzWrl3L7cNms+HgwYMx9UkQRGaSEgF46tQpbtlqtabEEqVlOlIOj8ejS7Ao+dFJ4XK5NO9DiqNHjwqEdyqoqqqSfeC0tLTMGwHo8/ngdDo5n1E9iMWjFCMjIxgZGYHValXlkpCIPoPBIFpbWxWP1ePxoLGxEVarFYcOHYqLCAwEAqivr1c8FofDgWPHjmFgYEDVn67Dhw9zrilydHV1oaurK26BYFquidPpjGnWweVyCfaTqvQh8xGGYfDll18mpO9FixZJ/iFPNHfddZdiOpfPP/8ct2/fllz3la98BQsXLpRt+8UXX+Avf/mL7PrFixerH6hG5Mashv/7v/+TXffVr35V8Zj//Oc/Kx5zskmJAORP//74xz9OxRAyioaGhrj0c/78eU3bs8JzamqKs7A4nU4UFBRIbs9a/Ww2GxcIkpeXp3e4GUk065pa3G43ampqBJ9ZLBasW7cOBQUFuH79Ot59913uYd7X14erV6/iN7/5jewfqkT0yTBMhPhjLYgsp0+fFgRPAYhZBDIMEyH+rFYr1qxZAwA4d+4cty+Px4P6+nrF4wCAjo6OiOvG3suhUAgnTpwQ/IGqqanB+Pg4KisrdR+H1DVhjyMnJ0dw7oA5Qbtw4UJdGRECgYBA3LpcLnIDiSMPP/wwzpw5k5C+A4EAvvvd7yakbyWefPJJvPXWW7Lry8vLcenSJcl1JpMJfr9ftu0LL7yAAwcOyK6fnZ1NiAi8fft2wlLnlJSU4OLFi7Lr7Xa74jEnm6QLwImJCcGP6DvvvAO32y25LX+6dWxsTPO0rVI6EqWEjDdv3uTyBFmtVlUP87GxMUFQy+OPPy67rVzizHSDFZ4+n487Bxs3bpSd+mIFYEVFRdxEaybR398vOwWqhWAwiJ07d3LvzWYzXn/99QihsXPnTrhcLu6+83g8eOWVVyQtrInoEwAGBwcFAmVoaAi1tbWCbRoaGvDjH/+Y+0719fVh/fr1Md0j+/fvF5xnsTWuubkZVquVE1fRjmN4eFjwPbdarejo6BAIpObm5gjB9vTTT+Ps2bO6xGwgEBD0ZTab0dPTI/h+NTQ0YM+ePQKxu23bNlRVVWmegn7ppZe4ZYvFkpXfUYIgeISTjM1mCwNIysvlcukaYygUEvQTCoWitnE6ndz2o6OjuvbL4vV6BfuPF/xz7/V6dY1HqZ3SeWf3bbPZVI0vk7h161bYYrFE3H9OpzM8Ojqq+Vry7yUAYb/fr7h9d3e3YHupa5SIPsPhcNhsNnPbtLW1qT4ui8WiuK0Sfr9fMLahoSHZbV0ul+bjULpHw+FweGhoSNCn3u97W1sb14fZbFb8nREfs9Pp1LQv8Zi1fP+zCaXnSV1dnWLbdevWJexZFggEZPd75swZxbY9PT26j3nr1q2KbcvKymTbmkwmxbbPPfec4r5nZ2dl2w4ODiq2HRwclG07OzubsOtUVlYW0zEnm6TWAvb5fHHxvUs0BoMBFouFe+/z+aK24Zv+V65cmYhhEWnKzMyMwKpts9ng9XrR2tqqeQqcYRiBJcrpdEb1XWtsbITZbObenzx5MuF9AnPfC74VTsnqDcxZj1lGRkYQDAYVt5djYGCAW7ZYLBEWRz4NDQ1Rj8PtdnPHYTabsW/fPsX919bWCvo8e/as6rGzBINBQZBJT0+PohXRZDKhra2Ne3/s2DHV+2IYRpBmq62tjfJsEgSR3CngI0eOcMsWiwWvvvqq4vYnT57kHlxqp2L5xOJ/tm7dOu6hfunSJUU/n2AwyG2bqqCWZKEmCliJ2dlZWUE9OzsbU9+pJh6RmmKfmQceeCBqG4PBgM2bN3Mi5syZM4JAgUT0KUU01wax6JiZmdH1XeGLn0ceeSTq9k1NTdxxHDt2LOI47rvvPrhcLnR2dsJut6uazq2qquL61ONQbjQaMTo6is7OTixbtkyVIFuxYgW3rMXN4I033hAI3GeffVbzeAmCmH8kTQCKrX92uz3qjx6bfwuYq3eYzH+t5eXl3PK5c+cUna7ff/99bpl1Qiek6evriykylg+bMHvhwoWKVqBEk5OTA5fLFRefqps3bwreL126VFU7fmCOONI7EX1KEQwGFcWT2OKXk5Ojahx8AoGAQPyUlZVFbcPfxuPxIBAICCygBoMBDQ0NWL9+vebxxEJ1dTXuu+8+3ZZQNfD9dwFg9+7d8/oPKkEQ6kmaAHQ6ndyyxWJJ+zJq/Gncvr4+xajFCxcucMtqHkiZjJoo4GTAMAx+9KMfcWKgu7s7ZbWiTSZT3PI63rlzR/BeKQVDKvsEIi1+V65cUTwPV65c4ZbNZrOuc8YPDAPUiVnxH8fJyUnJfadCGBkMhrjmRRTD/921Wq0p/aNEEER6kRQBODw8LLD6RJv6TSZqI4t37NghGzrOt2y+/fbbePvtt2X7KSoqSplQiQdqooCVEKcI4aMlT6Hf7xdYgk6cOJHR55Vl+fLlgvd+v1+V5VupznIi+gQiK+Ps3bsXK1eulBRXDMMIopDtdnvU/UsxPT0teK9GtIkFlrgPPYyNjXHLRUVFMfenhuvXr3PLVqs16vb9/f2C3909e/YkZFxEZvPcc8/JrsvJyVFMFK5kvf7ss88U2y5atEhx3z//+c/xla9Ihyl8/vnnim2vXbuGQCAgue5vf/ubYtuLFy8q+vU2NDTI/u7cddddMR1zskm4AAwGgwIHZJvNllYOyGqDUtROW0brz2azqeqHj5ogFDWkg4/dsmXLZKdKteQpzMvLg9ls5kTgqlWr4jK+VCO2aF2+fFnV94WfW1N8jyWiT5bt27dz1SvYfHu7d+/G/fffD6PRiGAwiCtXrggSHVssFkFdbS3wRSk/UCsaVquV+w5PTU3p2jcLP2gESI7VXxw0Es3VJBgMorOzk3tvtVrx85//nPNXXLx4MVavXo3q6uqEWiCJ9Id/n4jp7e3F1q1bdfX7pz/9SVHsHDhwQPFPyT333CP7zKqrq8OvfvUr2baPPvooBgcHJdfl5ubi008/lW178OBBRQHocDhQWloque7y5cuKvwfRjjnZJFwAvvbaa5R5PkZiDbyYjxiNRvT09OD48eNYtGgRtm/fnuohxQWj0QiLxcJZQjs7O6OWT3O73QLLqdi9IhF9shgMBgwMDOCll15CX18fPB4Pl+9PCra6iF7Rce3aNW552bJlqtvxrfd6yjeyMAwjeGBaLJaYEkGr5bXXXhO8f+yxx6Juz//dlfsDy5boo5yABJF9JFwA7ty5EytWrEBjY2PaZ55XSg4dL/Q4vqcT6SRGi4uL08qaHC/sdjsnvjweD3bs2CHrg+rz+QRTq4B0be1E9MliMpngcDhw9epVxehUs9mMHTt2ZEQdbDneeOMNgTBOhjuL2+0WWP+i/Y76fD7ZOsZi2BJ9U1NTMZWYIwgi80i4AORH2BmNRvT396tuy58SnJyc1NSW3Z8W0lVM6Jk2lmJsbCxltXYzIf9julBdXQ2bzcadM7YkW1NTE6qqqgDMpVC5ePFiRGqk7u5uyfs+EX2yqKmfC8yJjfvuuy+lATuxIK4W0t3dnfDfDHG1EKvVGtVax0+3BcwJ76amJpSVlcFgMIBhGFy6dAlHjhzhfg9iKTFHEERmkrQoYPYBojdSlC2Grhav15vW1kYtKDmVaqGlpSVmAZguUcDznX379mF2dlZQzzbatTObzYrXIBF9isWfzWbDk08+KZgWnZiYwNtvv82JT3b7TBIbbrdbMLVttVoTfr8HAgHU19dz781mc1T/IXG6LamSdgBQWVmJDRs24JlnnuF+V/WWmCMIIjNJei1gIrOJNQpYyZIrTvGRzRgMBhw6dAhr1qxRZV0DEDWJcbz79Pl8gn6cTqfkNGJlZSUqKyuxZMkSzoKWSWJDqmZvR0dHQoMnGIbBM888IxDor7/+etTp8+PHjwve79mzR/aPsMlkws9+9jPBH+uTJ09mxDUhCCJ2ki4AXS6X6m3Pnz/P/ZtVSh8ihdYqIPGaZiWU0WrJzWYMBgOam5vx2GOP4f3338eFCxe4KM4lS5Zw0bfA/2/v/EOkSM7///jlQ/7IaDSBiUq4u11PFGTPH2lRo3/chRVjrsPeJrcQjcvsRqLeebGXBRfDcaPoiri0sJc9f4y5gLrMohwbsrMXjcgMKKIZJeupMwoHujNHCLozOeKd0/4REvr7x6Yr1T39c37PzvsFAz3TXd013V1V73qq6nncDQ2W+py82BBF0XEO2d69e+nq1avs+X/yySeexQbvcsVLh4FfTfjSSy+5TmdmhRsdHS3r6IKiKLR7925dOYlGo64Wm/Bz/9yE/NNCzGnpzCKlAABmJhUXgIWuNrNzHwJKTzqdZi43+EgSxqgSZjx58oS5rmluboabiSLx+/3U1tamc+I7Pj6usw55DZNYinPyYsNt52znzp1M2PT39+tcRLmBX0TlpSPBr4K1msJgRFEU6ujo0N2TgYGBsi9ief/993X5lWXZleN8o98zPpqRHatXr2bbExMTlM1mZ8z0GeCMXQhHJ1+g1eLKlSu2+c5kMgWfe/v27bZuqn71q1/Ro0ePTPctXrzY0v8gEdHx48dt820M21luMAQMTBkcHDRduGHn4kOjr6+PiYdEIqF74WVZps2bN5umk2W5ZGHiZjKKouiEkyzLRQ/beT2n0TellV8sI0afhMawbE4sWLBA992NWFEUxfYcVml2796tE3/RaLTsEYyOHTumK3dWw+pmGBtrt6MgxmdSaIxmUJ/YCZZa5cWLF2XL95w5c2jOnDmW+//xj39YXnvevHn0yiuvWKb997//XVP3u6EFYDljcIL/wfdqFi5caCksrCKtAD0DAwNMmAiCUBIfiOU4pxu8WhiMvv8mJycdxYpRrDr5D9TEH98ZCYfDFRF/vNVVkqSKDMcaBTIAoDFoaAE4NTVV7SzULG1tbbRmzZqizzN//nxdDFg31hdgjdHH2/79+4seYi/knEZ/llNTU66skEax4XWublNTky4CzN27dx3nxt29e5dtu4lBfOrUqbwh2HJPP4nFYjrxFwgE6MiRI57OYbz/k5OTrp6JcTgLi0AAaAwgAP9LKcTOTMLM2qGt3jU2hul0mkZHRy2tFXwD47XBB3p+85vfsO1AIKCbw1fJcxqF2GeffebKQnb9+nW2LQhCQUONW7ZsYdf9+OOPHd3J8H7xtmzZYnus0QrnZQi2UGKxWJ6vPysn3U7wIe9isZirZ3n+/HldegBAY2AeablB+Oyzz9g2LFP2pNNp6uzspM7OTurp6WG/J5NJam5upr6+Pjp9+rRpWj6mLKwLhTMyMqJb+OB14Uepz8mLqb6+Pse5Lel0Wnd+JzFmBb8qd2JiwtZB/MjIiG4en9X8U+1YoxWu3OIvmUyW1MXM22+/zbaHhoYoFovZHj8+Pq57/nx6AMDMpqEtgBcuXGDby5cvr2JO7DHOYSoUq8DaTmg+yTR4a2lzczOLM2vm2y2ZTLIGptSudmKxGI2Pj9PcuXNp+/btdR1izIlsNquLQVuKhR/FnrOrq0snmDo6OujEiROmQ7LJZFIXVF4QBOrq6so7TlEUGhgYoK+++ora2tpMrYpG1yWdnZ00Z86cPGvX+Pi4zjelJEmW/y8Wi+mO1axwxXD69Gl6+PAhLVu2zNRKmU6n8+5JsS5mWltbdXGfN27cSJFIxNQSOD4+rlvUJYpiSSzKAID6oGEFIO/yQhTFml71Vu34uwMDAzoRxw8B+3w+nTPZ7u5uunbtGrNg8MNvbhsXQRAcj8lmszrLCRF5dilSTxw+fLjkizSKPaff76doNMqegxbqTRRFeuONN2jhwoWUy+Xo5s2beau7BwYGTMvcwMAAE3ZDQ0OUSqVMhf2ePXvo0qVLLP9vvfUWuy4R6fwNav/vgw8+MP0fxiFYomm3MV5WpIfDYV25GB8f1znJXrhwoe791/wL8tbJiYkJWxcRRiRJyosS5PP56OjRo7r/rt2b73//+7R06VL6/PPP6c6dO3n35/jx466vDfJZvHhxwZ1sJ77xjW+U5bxOfOc736GXX365oLT/+te/6OHDh5b7//73v9O9e/cs9//nP/+x3Dd37lxHdyqaf1Oz89pd1wm7+7F06VLbtN/73vdo5cqVBV+71JRdAGazWbpy5UpBaYuJBcxjnLNmdHmxc+fOgs7bCIyMjLAG2aoRbWpqonA4TJ2dnTQxMUEDAwN06NAhXVgqQRBo3bp1ltdRFIVu3LhBRMRi09phXMBz584d1/+p3rh165bONcjAwEDRCz9Kdc7W1ladCCSyd/YtCAINDAxYzhc0VtpWq4T9fj+Njo7qRJTVdZ0sa+Pj46a/F8Pz589tv5czLndLSwslEgnq7u52vDdE0x3g48ePz2gLeiUwxmCeCbS1tdGZM2cKSvvFF1/YvlOyLJMsywWd+4c//CH98Y9/tNz/05/+lMbGxkz3PX/+vCgRdvfuXddur4zs3bu3phytl10ATk1NlSRmZjERJIwC0OjyotzuHYqlVEOnXhsd47DYiRMnLBvRbdu20ZUrV2h4eJju3LlD6XRat7jAGFKsp6eHli1bxlaT3r5921PeWlpadBPevUSJqScURdGt0JUkqej3tdTnbG1tpUwmQ+fOndNFEjEiyzJ1dXXZWtvb2tqYMA0EAra9/KamJrp27RqdOnXKcu6im2uWgw0bNrBFMoIguOrUlJKWlhZ2b6yeiSAI1NvbS+3t7XDWDkAjopaZRCKhElFVPzyRSES3LxqNlvsWeMZ4z0qFJEnsnIlEwvbYeDyuy0M4HHY8fyqVUmVZVnO5nCrLMksrCIKay+Us82L8uH0muVxOjUajjv8FVJZEIqHG43E1HA4X9HxSqZQajUbz3hk7crmcmkgk1EgkokYiETWRSHhKXw4ymYwajUbVTCZT1Xyoqv6ZxONxNZVKVTtLNYldO9Le3l7t7Jly9epV23yfPXvWNr1d2u7u7oLzlU6ny9amOz2L9vb2sl377t27Bd+TWqPsFsD58+d7iv9bbhYtWsQmSZfCmjJT4S1sbv2gNTU1MfP2119/zX4/ceJEnoWBj+mqIQgC7dixw/Uz8fl8eH41iLbQwk3sWjOampo8D0f6fD5qaWmpqVXmfr+/Zt7PYp8JAGDmUXYB6Pf7ayqGb0tLC/3pT3+ikZER23h/1aS5uZkSiUTJz9vb20s7duxg17DD5/PRyZMnadOmTQU9v0OHDpEoinT9+nXTRmfXrl20a9cuFnN49uzZmIMEAAAAVIiGXQVcS6LUiGbNKDWFWFWKuU9r1651tDhA9AEAAACVp6EdQQMAAAAANCINawEEAAAA3HLnzh365S9/We1s5PH06dNqZ6EgfvGLX9CmTZss9+/evZtevHhhus/pWdi5BfvmN79ZlJP33//+95buqV5++WU6ePCgZdrz58/busUr1OVOocxSVVWt6BUBAACAGmTWrFnVzkLJOXv2rGnUHQ27/9zd3V02P4AffvihLqyokW9/+9tlcaw9b948+uc//1lw+lWrVtHdu3dN961cuVIXYtZIb28vffjhh5b7Ky3HMAQMAAAAANBgQAACAAAAADQYEIAAAAAAAA0GBCAAAAAAnfDBugAAGCRJREFUQIMBAQgAAAAA0GBAAAIAAAAANBhwAwMAAAAA0GDAAggAAAAA0GBAAAIAAAAANBgQgAAAAAAADQYEIAAAAABAgwEBCAAAAADQYEAAAgAAAAA0GBCAAAAAAAANBgQgAAAAAECDAQEIAJjRJJNJymaz1c4GAADUFFUTgOl0msbHxymdTlcrCzVJOp2mnp4e6unpsb032jGxWKxymQMNy7FjxygWi5GiKI7HZrNZmjVrFs2aNYtWr17tKo0bRkZG2HmTyaSrNIqiUHd3N333u9+lrq6ukuUFAADqnf+r1oVHR0epr6+PiIhCoRDt2rWrWlkpGr4xmpycpOfPnxMR0eeff05fffUVPXv2jIaHh0mSJPrtb39re65cLkdDQ0NERLRjxw7L47Rj1qxZk7cvnU5TLpdznf+WlhbXx4LGI5lMsrIaCATo3LlztsdfuXKFbU9MTNDY2Bht27atrHm0Ih6P08TEBBERzZs3j3w+X1XyAQAAtUbVBODVq1fZ9sqVK4louqF57bXXSnL+RCLhStgYxdK9e/fyjtGEnMbjx4/p4sWLnvM0NDTkKABLweDgIBOIbkA46Ol3z+zZl4sVK1bUjfC+fPky23777bdtj1UUhQYHB3W/DQ4OUnt7e8XFlzEvdh0qUFtks1ldR6Kc1FNZBKCUVEUAptNpJqAEQaC1a9dWIxtE5F0sFYogCLRhwwbKZrPk9/vLfj3gjXv37lFnZ2fFrhcOh+ui0VEUhS5cuMC+/+AHP7A9fmxsjFncRFGkixcvVs0KODY2puuoffzxx67TVqKjVm6y2SxNTk7So0ePaM6cObRo0SJqbm4uuxBPJpNsJGTx4sW0aNEiz3Xe1NRUxcpjvZRFAEpNVQTg6Ogo296yZUs1slA0kiSx7blz59LSpUvZ9xUrVrBttxXLrFmz8n5zYw3t7OxkFaXR6qmJTjNu3LjBGup65Cc/+YlnKywsnd7hh1AlSbJtyLPZLHsXBUGgM2fO0I9//GOamJigzs5O2rRpU8U6P2aWSC8dvXoWgLFYjAYHBy3LhyzL1NXVVfJnMTIyQoODg6b1iiRJtGPHDggtAGqIigtAo0Vh8+bNpse5mS9npKenpyhrnizLtGTJElq0aFHePrOKi5/7V4sV24YNGyzvYU9PT10LwEKG4O1YsWIFhcNhT2l4C4XXtHwnoZYZHh5m221tbbbHHj58mG339vaS3++n3t5edp8OHz5cMWF16tSpun6/C0FRFDp16hSbr2lFX18fXbhwgUZHR6mpqakk1929e7fuXTEyNDREQ0NDFI1GqbW11fGc8+fP91ymCqVeyiIApabiApC3KIiiWFPCafPmzZ7yw1voirUuaZXdkydPWAUuyzItXLjQ9HitUZUkiS0EmT9/flF5qBeMLj14a2yhtLS0eH4XeQFYrUUO5SSZTLJGXRRF24Z7ZGSEdb5EUaT29nYiImpvb2dDwUNDQ7RmzZqy3yt+0QoRUSaTsbV2KYpCP//5z1mnIhQKlTV/5cIo/gRBoB07dtDs2bOJaHouc39/PxFNL87p6OgoiQh8//33deJPFEV64403aOHChXT79m1dp3zjxo0Uj8cdp/34/f4ZWaYAqCnUChMIBFQiUolIjUQiun2JRILtkyTJ87klSWLpE4lE2dJoaOlKeRv5e2CXH+2YcDict0/7T3b3kP/f9QZ/j6qZ/1rIQznh3xGz90wjHo/r7oXxvTXuj8fjnq/v9NGumcvlVFEUdfvs8q6qqhoKhdixoiiquVzOVf5qCWOZkGXZ9H8kEglVEISi6lmeSCSSd10jqVRKd01BEOryHgMw06ioH0DeokBEroYCADAyNTXFtgOBQBVzMnPJZrPMciMIArPoGUmn0/Tee++x76FQKM+SunbtWpJlmX1/7733yub/89SpU3nTAzo7Oy39BsZiMXrnnXfY92AwWJeuYj755BO2LYoivfvuu6b/o6WlhQYGBtj3oaGhopxkHzp0iG0Hg0Hau3dv3jFNTU109uxZ9l1bFAQAqC4VFYD8KjxJkmqyouWdzTp9eNymmTVrFo2MjFTp380Mnj59yrbnzZtXxZzMXD766CO2vWHDBtOymk6nqaOjg03pCAQClis33333XSbWteFHJxG4bNkykiSJfURRZPsCgYBu3+zZsykWi7EhUEEQKB6Ps+O7u7vzrpdOp2nfvn3seygUqqpHgmLQhnaJiLZu3Wpbtxo73vfv3y/omrFYTDfPcs+ePZbHtrS0UDAYZN/Pnz9f0DUBAKWjYnMAk8lkRdytzCSK9Yn47NkzS8vHs2fPijp3NXny5AnbNnOEDYojmUzqBIUZRvEnCAIdO3bMUnj4fD46duwYPXjwgCYmJlzNQTM6h9+/fz+z7vX19eVZGg8cOMC2T5w4QWvXrqVwOEydnZ00MTFBBw4coJMnT5LP5zMVr/XsjJ5n8eLFjsdIksTqY75D5YVr166x7UAg4LiqWBRF9l5dvHiR0ul0SRahAAAKo2IC0IsPLqL/rRqrNF5Wgxa6CrRSq86Gh4dtV+Z5QVEUisVi9Pz586o49eX529/+VrVrNwJOZdVM/I2OjjoKAL/fT6OjoyztxMQENTc3u14ZeunSJbZ9+fLlPAF48uRJ+vLLL2nr1q3Mkrdt2za2sGp4eJi+/PJL6u3tpX379unE38mTJx2vb0YtlQsNfoqEFY8fP2bbc+bMKeg6/PNYv3694/HG53X//n0IQACqSSUmGhongZPF5GPjROZiPjNhEYgsy2o4HDb9aMfYLQJx+3EDf85AIFCy/1sI/CR/r8+slJTj+Vcbp7IajUbzJvSnUilP1zAuCiAiNRgM2i4MMMuX2YKDTCZjml6WZdN3PxAIFLUgoVbKBb+4LhgM2h6byWR098Dr8zM7RzQa9ZxPs+dXqvq/0I/TgiEAZhIVsQA6DSdpzJ4929alBx+CLRAI2M7/0lwf1DN2bmnceMkXRZG2bt1quu/8+fOefOnx1tjh4WE6duxY1SKa8PnWnrOiKJRKpYjIu0/Gnp6eovNU6Dl6e3trxgqiKIptWT19+rRuwYRm+btx4wbduHGDiKzd4fChvRYsWECjo6N04MABZqHu7++nS5cuWQ4JX79+Pe83bb4fv/DA6p3s6OigCxcu5PkGPHjwYFFWu1opF4FAQHcvX3/9dUurKu+vUZKkgt4/o5XRrQsqvs6GJR+AKlNuhclbq4p1P8Cfq1SWn1q2ANaSGxi+5y4Igqs05cBoeYhEInluP+i/1hi3Vglj2kp+qmnBNMK7Q+GftyRJee5VRFFkliM35cDMxVMul1ODwaDunGbkcrk8i6GTJUkjk8lYWv/49FaWQydqpVyoar7lPxQKsWeUy+XUeDyuyy9RYdY/Vc23yLq9f0aXO0aqWRat6lMAZipltQDyoaGIpidxv/XWW+W8ZMlIp9N5oaTscLIAtbW11bXbm2PHjtFrr71GX3/9NW3fvr1q+TBaHqzeJ23+YyAQoIMHD9aMla1WSSaTOuueNmdOw+fz0dGjR+nixYtszlyx8918Ph8dOnSIVq9eTYcOHaKjR4+aHsc7j+fzN2/ePBoaGqK+vj5asmSJLlJJMpmky5cv50XFEEWRdu7cSb/73e90C0r6+vooGAySKIqeVgLXSrkgIjpy5AjNnTuXWXH552lEEAQ6ceJEweXi0aNHuu9urZ78yIzZCITq4FB/ZGRE5wTfKrIMf1w4HIZTaQBMKKsA5IdmAoGAYyipWiKXy3lahOJ0bCGrVYtdBVxK/H6/qY+vSmM1wV0URXr11Vd10wSIpoXggwcP6M9//rNlI+XU6Jhx69YtWrduHfvudiFDLaIoCnV3d7PvZr78iKaH1t1EcfCK1jmyEpRWC5mOHDlCN27coAULFlBraytls1n6y1/+ohN3GoIgUG9vL1uo0dbWlhe7tr+/n/r7+0kQBNqyZQutWrWKli9fbituaqVcEE0L6j179tAXX3zhuPirt7e3bl3eAABKQ1kF4Pr162l4eJgEQaCDBw9aHheLxVy5Irh9+zbbvnz5Mt27d88xjdY4FIMmLrxiFCOVYia72zG+J6FQiH72s5/pGulsNksfffSRLuxVqePQ3r17V/f92rVrdSsAX7x4wbZFUbSdX1ou0WAl/njn8bzrEi3NiRMnaP78+TQwMGA6f1ELh2Z8R4im5yu2t7fT2NiYbk6stkKZaNq5Me/suJaJxWK61c12dHZ20u3bt+nIkSM1sXIZAFB5yioAOzs76dNPP3Wc6D4+Pu5ZtDgFPNeQJMl1w2y1cGTr1q0FDSGMjIwUJQDdxAJuZKysbn6/nzXamigYGhoq6TD8p59+qvve399Pe/bsqdrCmGLw+/3U29tLnZ2ddPz48ZoSBJpLGlEUTa3omiB9/fXXdQJQG+q1sywSTYvIbdu20bZt2+jWrVt08eLFvPPUA7du3aKNGzey76IoUm9vL61bt479/3Q6TaOjo6zuHBoaomfPntG5c+eqkmcAQHUpqwD0+Xx05syZumkUvc6H6enpYcK1kGFEJ4pdBfz48WPLqCO8H7B6Ytu2bbRixQqanJx0FHP79u2jS5cuMYtIqax0sVjMVNifO3euZoYDvdLe3k7RaLSm5kryzuOtVrNrtLa2UiAQoPXr19OPfvSjgv7H2rVrae3atbRv3z5KJpN0/fr1uhgmVRRFF47Pao5mU1MT7d27l1atWsXE4vDwMG3atAlz5ABoQMruBsaN+Ovt7aUdO3ZY7jebzK0RiURo0aJFlmlngjuYQrl48WJVhqDLTUtLiytXLz6fj7Zs2cIE4KVLl0oynMcvDgqHw2z4sK+vjzo6OmpKRLnF5/PV3BA275BaG6q1Q7Nk8R2zQkgkEkwM1gPGkGx2EVmIpsWyLMusTh0cHPQsAI3RRrLZrKu6PpfLse1CrKt8+pdeeslzegDA/6hYJBA77BrMdDpNFy5csNz/hz/8oagVicU0FFpaQRAKPgfR9H/UKrbJyUn2O79txZMnT1i4t+bm5poavqsFlixZwrbdzI1ygh/WFwSB2tvbieh/KxoPHDjQsENqpRwuvXXrFitfsizjvbYhFouxbUmSXAmxjo4OJgAnJiYomUx68p9pfB5TU1Ourvvw4UO2Xci8aj691fQYAIA7akIAWqEoCv3617/WTcjW5ueEQiF65513aHh4mF555ZWCLDuKorBtLVB9IWzYsKHgtETTPXAzIerGZY7mwoJo2nLR3NzM9smyTJs3bzZNJ8tyycLE1TJ21mGvpNPpPLdG2hwyzQo4PDxM69evnzFxZZ3gy1AhDboVvOPnrq6ugs9j51iep1oLtkoBX3e49TZg7HRPTk56EoBGx89TU1Ou0vMxyAux4GkOx4ncxTx2QzKZpKmpKXr11Vfr0noPQKHUrABUFIV2797NKuVIJELPnz9n+zds2MBEYH9/P33rW9/yPP9KixxBRLZRRczQrG5EtTUUwf+nhQsXWlbKXv9vveImLqobstksdXR0sO+SJOncGmk+8oim/a8tXry45oZUywH/vpWSrq4u6uvrI1mWi5pD7Hbld7ELtuodvm51g9/vJ0EQWOf80aNHju+7oii6TidvnXdDOp3WWfG9Rvyx4t69e/AZCBqSmhSAmvjTKotgMMj8dvHs2rWLbt68ScPDw6ZhoZzgh1i9+unje6KrVq3ylNZIW1tbQX4CjcyfP5/u37/Pvi9YsKDoc9Yqbucc8Q5rCx2qT6fTdODAAdb4CIJAH3zwge6YlpYW1iEhItq4cWNd+wZ0SzFlyA6/30+hUAir3V3AC7EnT564SsNbbokKqyvefPNNdt2bN286Wr35TjMR0fLlyz1db3R0lG0HAoGSTQtwe88AmGnUnAA0ir9AIED79u2zPP7kyZP04MEDmpiY8CwC//rXv7JtL8MJiqLoJqgbK1OvmIkETewae6OaKwer/8gLHrfxOeuJZDJJsizTvHnzXFl3eHctb775pufrpdNp6ujo0Im/0dFRU/HJd0iIGkME8mWo1B2ORhlGLxZeiF29etVV/RePx3XfCxm+513vDA8PO0bc4S2soih6Gm5Np9O6hYDFTNkxgpjEoGGpdOw5MsQD5UmlUrp4o4FAQM3lcmy/VSzgVCqlixVqTGdGLpfTxYA0Hp/JZNRwOKyGw2HdtXK5XF7MTfpvXMtwOKyLiZlIJEzP4UQqlTK9T3w81VAoZJqWv392eI0FXAuYxQG2g39fjO+MG6LRqO69EgRBjcfjtmlyuVxevFVZlh3fx1rErqyqan4ZsosHaxYL2CtuY4EX8m6XI854pYhGo57KhVlc50JxG9+df/7kMeausUy5yS//PJ2uVUw8eADqmZoRgGaNrTFQuV0lbRSBgiDYFuZIJKITjG7IZDJ5wd+NQlBr8AutSIyVM195GfcZr+GlkfXaSKZSKVWSJFWSJEcRVE5kWXbV2BnFnxfRkcvl1GAwqEtv9j7apTeKQFEU665xcbp3/D12ur8zVQDWSrng6wU70WOsw4jIMt+hUEiVJMmys6mq+nrUqrOTSCTy6ma3HSKzsuTm+fDPU5Zl22MhAEGjUnUBmMvl1FAopCvgVhY8p0raKAI1S5nZufgK06nHnMlk8oSHJghyuZwaDodNxaAkSWo0GvV0f3jhYWUltapI+YrM6brasYIguMoXf7/cpikHuVwu716LoqgGg0E1HA6rwWAwb78gCLbWKR5jR0Q7v1vxx2N8Z7TGyG1eqo3de2i0xjq9bzNVANZKuTCr+wRBYOUiHA6bjlxYiSOjsLOrI40CTbtuKBTK22cnOM3+kzG9U12twT9PO4uh0YoNAQgaiaoLQLfiT1XdVdLGSsOst8kPmVj1RjOZjBqJREwrsEAgkCcIcrmcGo1G83riWgUUiUQce738/7MTLfxxwWBQVVV9A+vUw+ZFlNvG2PifqilijFMF7D5mz8qMRCJh+qyDwWBRw7dmglIQBDUcDtf8sLCdYOPvlRsLerUEYCEfLyKg1sqF1aiE2cfOsme0oNsNo5pZ6aw+bjvEkUgk7784WfJ4jMPiWmc8kUiwTzgczqtHar1MAlBKqi4AM5kMK+h2FZKqum8A+CE8Y4/RaEHiK5V4PK6GQiFLceG24Y5Go6YVol16Y4Xl1EvWzq9Zp6yGjVVVZcM4ZpYAt40xL9QLbcBLiZ3lVbsvbuYZJRIJU8EgCIJra4MTmUzG8hq1PD/Q6nkbLZtuBfZMFIC1Wi7sOkiSJDn+R15Mup3+YFce3VxTu67Z8/NaFs1GCpw+tfD8AKgkVReAqjotftwMC3gdpjGrNOysbFaVplsLnhErcWHsBcfjcd1+N8IllUox8cA3yGbWP7sG0csQdTwe9zykXQkSiYQaj8fVcDisxuNxT8O1Rgu01ikohyizGl6uVazKqtd3VVWrJwC1To/Tp5h5YLVaLlKpFLN0RSIRNZFIeHqvM5mMGo1GPVs1E4mEGo1G2eI3t+n56S18fVbo3Eqz8mb1CQQCdTM1A4BSURMC0C2lWKnHD9MaGy9+3osoimooFCpo7pcRXgiaNfj8EIqXYQ4Nft6gWWVpJnIEQXC0uDYC/MIat1aKYq/HW0pqUThomJXVQi1eM3UOICgtfGdWkqSiRVkul1MjkYgqyzJbrKN9tPmR1Vy8A0A1maWqqkoVpKenh4iIli1b5tnPVzKZpHv37hER0aZNmwqOEKAoCsViMWptbdU5E9V+X758eVlCAmmOUM082CuKQmNjYwV7ob916xZdv37d1geYFnN49uzZCHnEYfdcyoWiKBSPx2vaR6Dmi3LBggW6fGq+GL3E4M5ms3TlyhXT87klm82yyC52ca9jsRg9ffqUiPL9aFpRqroFFM/+/ftp9erVukg7AIDSU3EBCAAAAAAAqsv/q3YGAAAAAABAZYEABAAAAABoMCAAAQAAAAAaDAhAAAAAAIAGAwIQAAAAAKDBgAAEAAAAAGgwIAABAAAAABoMCEAAAAAAgAYDAhAAAAAAoMGAAAQAAAAAaDAgAAEAAAAAGgwIQAAAAACABgMCEAAAAACgwYAABAAAAABoMCAAAQAAAAAaDAhAAAAAAIAGAwIQAAAAAKDBgAAEAAAAAGgwIAABAAAAABoMCEAAAAAAgAYDAhAAAAAAoMGAAAQAAAAAaDAgAAEAAAAAGgwIQAAAAACABgMCEAAAAACgwYAABAAAAABoMCAAAQAAAAAaDAhAAAAAAIAGAwIQAAAAAKDBgAAEAAAAAGgwIAABAAAAABqM/w8GwRVjwY44zgAAAABJRU5ErkJggg==',
					x: 0,
					y: 0,
					width: 40,
					height: 20,
					rotate: 0,
				});
				// 生成打印数据
				let imageJsonObj = jcapi.generateLabelJson()
				// 设置打印任务
				jcapi.startJob({
					totalCount: 1,
					density: this.printDensity,
					labelType: this.labelType,
					printMode: this.printMode,
				}, function(r) {
					if (r.code == 0) {
						// 打印数据
						jcapi.printData(imageJsonObj, {
							"printQuantity": 1,
						}, function(r) {
							if (r.code == 0) {
								console.log("打印成功")
							} else {
								console.log("打印失败")
							}
						})
					} else {
						console.log("设置打印任务失败")
					}
				})
			},
			printMultipleTest() {
				// 说明： 打印多页数据，可以循环调用单页打印实现
				// 此处示例是缓存打印，打印速度较循环单页打印速度回快很多
				var _this = this
				jcapi.startJob({
					totalCount: 5,
					density: this.printDensity,
					labelType: this.labelType,
					printMode: this.printMode,
				}, function(r) {
					console.log("startJob: " + r)
					if (r.code == 0) {
						console.log("开始多页数据发送")
						_this.printMultipleData(5, 1)
					}
				})
			},
			/// total: 打印总数， index：当前打印位置
			printMultipleData(total, index) {
				// 初始化图像绘制
				jcapi.initDrawingBoard({
					width: 40,
					height: 20,
					rotate: 0
				});

				jcapi.drawLabelLine({
					x: 2,
					y: 5,
					width: 20,
					height: 2,
					rotate: 0,
					lineType: LineType.Solid
				})

				// 绘制文字
				jcapi.drawLabelText({
					x: 4.375,
					y: 0.375,
					width: 30,
					height: 3.5,
					value: "蛋糕房 " + index,
					fontSize: 2.6,
					rotate: 0,
					lineMode: LineModeType.AutoHeight,
					lineSpace: 0,
					letterSpace: 0,
					textAlignHorizontal: 1,
					textAlignVertical: 1,
				});

				let imageJsonObj = jcapi.generateLabelJson();
				console.log(JSON.stringify(imageJsonObj))
				var _this = this
				jcapi.printData(imageJsonObj, {
					"printQuantity": 1,
				}, function(r) {
					// 发送打印数据完成，继续发送下一页
					if (r.code == 0) {
						if (index < total) {
							_this.printMultipleData(total, index + 1)
						}
					} else {
						console.log("printMultipleData fail")
					}
				})
			},
			customPrint() {
				uni.navigateTo({
					url:'/pages/custom_print/custom_print'
				})
			},
		}
	}
</script>

<style>
	.click-avalible {
		color: blue;
		border-bottom: 1px #f5f5f5 solid;
	}

	.text-style {
		margin-top: 20rpx;
		font-size: 30rpx;
	}

	.margin-top {
		margin-top: 20rpx;
	}

	.content {
		margin: 0 auto;
		width: 80%;
	}

	.uni-mask {
		position: fixed;
		top: 0;
		left: 0;
		bottom: 0;
		display: flex;
		align-items: center;
		width: 100%;
		background: rgba(0, 0, 0, 0.6);
		padding: 0 30rpx;
		box-sizing: border-box;
	}

	.uni-scroll_box {
		height: 70%;
		background: #fff;
		border-radius: 20rpx;
	}

	.uni-list-box {
		margin: 0 20rpx;
		padding: 15rpx 0;
		border-bottom: 1px #f5f5f5 solid;
		box-sizing: border-box;
	}

	.uni-list:last-child {
		border: none;
	}

	.uni-list_name {
		font-size: 30rpx;
		color: #333;
	}

	.uni-list_item {
		font-size: 24rpx;
		color: #555;
		line-height: 1.5;
	}

	.makewifiBg {
		height: 50%;
		width: 80%;
		background: #fff;
		border-radius: 20rpx;
		padding: 100rpx;
		margin: 0 20rpx;
	}

	.kongbai {
		height: 40rpx;
	}
</style>